commit: af049e309bfa47141a9788cd1730dd50dad6176d
parent 94849bc997d232b344b0f3666198feec7b004b43
Author: dirkf <fieldhouse@gmx.net>
Date: Fri, 7 Mar 2025 19:37:56 +0000
[JSInterp] Handle undefined, etc, passed to JS_RegExp and Exception
Diffstat:
1 file changed, 2 insertions(+), 0 deletions(-)
diff --git a/youtube_dl/jsinterp.py b/youtube_dl/jsinterp.py
@@ -408,6 +408,7 @@ class JSInterpreter(object):
class Exception(ExtractorError):
def __init__(self, msg, *args, **kwargs):
expr = kwargs.pop('expr', None)
+ msg = str_or_none(msg, default='"None"')
if expr is not None:
msg = '{0} in: {1!r:.100}'.format(msg.rstrip(), expr)
super(JSInterpreter.Exception, self).__init__(msg, *args, **kwargs)
@@ -435,6 +436,7 @@ class JSInterpreter(object):
flags, _ = self.regex_flags(flags)
# First, avoid https://github.com/python/cpython/issues/74534
self.__self = None
+ pattern_txt = str_or_none(pattern_txt) or '(?:)'
self.__pattern_txt = pattern_txt.replace('[[', r'[\[')
self.__flags = flags