bpo-40883: Fix memory leak in fstring_compile_expr in parse_string.c (GH-20667)
This commit is contained in:
parent
b084d1b97e
commit
a54096e305
|
@ -0,0 +1 @@
|
||||||
|
Fix memory leak in when parsing f-strings in the new parser. Patch by Pablo Galindo
|
|
@ -604,6 +604,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
|
||||||
|
|
||||||
struct tok_state* tok = PyTokenizer_FromString(str, 1);
|
struct tok_state* tok = PyTokenizer_FromString(str, 1);
|
||||||
if (tok == NULL) {
|
if (tok == NULL) {
|
||||||
|
PyMem_RawFree(str);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
Py_INCREF(p->tok->filename);
|
Py_INCREF(p->tok->filename);
|
||||||
|
@ -629,6 +630,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
|
||||||
result = expr;
|
result = expr;
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
PyMem_RawFree(str);
|
||||||
_PyPegen_Parser_Free(p2);
|
_PyPegen_Parser_Free(p2);
|
||||||
PyTokenizer_Free(tok);
|
PyTokenizer_Free(tok);
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue