]> jfr.im git - yt-dlp.git/commitdiff
[jsinterp] Escape regex that looks like nested set
authorpukkandan <redacted>
Thu, 8 Dec 2022 17:12:49 +0000 (22:42 +0530)
committerpukkandan <redacted>
Thu, 8 Dec 2022 17:13:38 +0000 (22:43 +0530)
Closes #5749

yt_dlp/jsinterp.py

index e25997129d0ae69f4a9103c9453df9a7fdc0afba..3f7d659acf5013f62bf122d3d70bf531a4ea8e21 100644 (file)
@@ -343,7 +343,8 @@ def interpret_statement(self, stmt, local_vars, allow_recursion=100):
             inner, outer = self._separate(expr, expr[0], 1)
             if expr[0] == '/':
                 flags, outer = self._regex_flags(outer)
-                inner = re.compile(inner[1:], flags=flags)
+                # Avoid https://github.com/python/cpython/issues/74534
+                inner = re.compile(inner[1:].replace('[[', r'[\['), flags=flags)
             else:
                 inner = json.loads(js_to_json(f'{inner}{expr[0]}', strict=True))
             if not outer: