bpo-23689: re module, fix memory leak when a match is terminated by a signal or memory allocation failure by animalize · Pull Request #32283 · python/cpython

animalize

_CompileData can store intermediate data.
-_validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
+_validate_inner(SRE_CODE *code, SRE_CODE *end, PatternObject *self)

@animalize

serhiy-storchaka

serhiy-storchaka

self.assertEqual(get_debug_out(r'(?:ab)*(?:cd)*'), '''\
MAX_REPEAT 0 MAXREPEAT
self.assertEqual(get_debug_out(r'(?:ab)*?(?:cd)*'), '''\
MIN_REPEAT 0 MAXREPEAT