bugfix: resolve full base directory before startswith check
This commit is contained in:
parent
8f69494ada
commit
a07e1ed06c
|
|
@ -234,11 +234,12 @@ class DownloadQueue:
|
||||||
if self.config.CUSTOM_DIRS != 'true':
|
if self.config.CUSTOM_DIRS != 'true':
|
||||||
return {'status': 'error', 'msg': f'A folder for the download was specified but CUSTOM_DIRS is not true in the configuration.'}
|
return {'status': 'error', 'msg': f'A folder for the download was specified but CUSTOM_DIRS is not true in the configuration.'}
|
||||||
dldirectory = os.path.realpath(os.path.join(base_directory, folder))
|
dldirectory = os.path.realpath(os.path.join(base_directory, folder))
|
||||||
if not dldirectory.startswith(base_directory):
|
real_base_directory = os.path.realpath(base_directory)
|
||||||
return {'status': 'error', 'msg': f'Folder "{folder}" must resolve inside the base download directory "{base_directory}"'}
|
if not dldirectory.startswith(real_base_directory):
|
||||||
|
return {'status': 'error', 'msg': f'Folder "{folder}" must resolve inside the base download directory "{real_base_directory}"'}
|
||||||
if not os.path.isdir(dldirectory):
|
if not os.path.isdir(dldirectory):
|
||||||
if self.config.CREATE_CUSTOM_DIRS != 'true':
|
if self.config.CREATE_CUSTOM_DIRS != 'true':
|
||||||
return {'status': 'error', 'msg': f'Folder "{folder}" for download does not exist inside base directory "{base_directory}", and CREATE_CUSTOM_DIRS is not true in the configuration.'}
|
return {'status': 'error', 'msg': f'Folder "{folder}" for download does not exist inside base directory "{real_base_directory}", and CREATE_CUSTOM_DIRS is not true in the configuration.'}
|
||||||
os.makedirs(dldirectory, exist_ok=True)
|
os.makedirs(dldirectory, exist_ok=True)
|
||||||
else:
|
else:
|
||||||
dldirectory = base_directory
|
dldirectory = base_directory
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,7 @@ export class AppComponent implements AfterViewInit {
|
||||||
format = format ?? this.format
|
format = format ?? this.format
|
||||||
folder = folder ?? this.folder
|
folder = folder ?? this.folder
|
||||||
|
|
||||||
|
console.debug('Downloading: url='+url+' quality='+quality+' format='+format+' folder='+folder);
|
||||||
this.addInProgress = true;
|
this.addInProgress = true;
|
||||||
this.downloads.add(url, quality, format, folder).subscribe((status: Status) => {
|
this.downloads.add(url, quality, format, folder).subscribe((status: Status) => {
|
||||||
if (status.status === 'error') {
|
if (status.status === 'error') {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue