1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-06-27 17:08:32 +00:00

[devale] improve input validation

Authored by: bashonly
This commit is contained in:
bashonly 2025-06-11 17:03:34 -05:00
parent 65b8662f37
commit afa47b8715
No known key found for this signature in database
GPG Key ID: 783F096F253D15B0
2 changed files with 12 additions and 10 deletions

View File

@ -141,7 +141,7 @@
'name': 'hole',
'unparsed': -2,
'error': ValueError,
'pattern': r'invalid input',
'pattern': r'invalid integer input',
}, {
'name': 'string',
'unparsed': 'hello',
@ -150,13 +150,13 @@
}, {
'name': 'number',
'unparsed': 42,
'error': KeyError,
'pattern': r'42',
'error': ValueError,
'pattern': r'invalid integer input',
}, {
'name': 'boolean',
'unparsed': True,
'error': KeyError,
'pattern': r'True',
'error': ValueError,
'pattern': r'expected int or list as input',
}, {
'name': 'null',
'unparsed': None,
@ -170,8 +170,8 @@
}, {
'name': 'empty array',
'unparsed': [],
'error': IndexError,
'pattern': r'list index out of range',
'error': ValueError,
'pattern': r'expected a non-empty list as input',
}, {
'name': 'Python negative indexing',
'unparsed': [[1, 2, 3, 4, 5, 6, 7, -7], 1, 2, 3, 4, 5, 6, 7],

View File

@ -43,12 +43,14 @@ def parse_iter(parsed: typing.Any, /, *, revivers: dict[str, collections.abc.Cal
-6: -0.0,
}
if isinstance(parsed, int):
if parsed == -2:
raise ValueError('invalid input')
if isinstance(parsed, int) and not isinstance(parsed, bool):
if parsed not in resolved or parsed == -2:
raise ValueError('invalid integer input')
return resolved[parsed]
elif not isinstance(parsed, list):
raise ValueError('expected int or list as input')
elif not parsed:
raise ValueError('expected a non-empty list as input')
if revivers is None:
revivers = {}