summaryrefslogtreecommitdiff
path: root/Parser/pegen/parse_string.c
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2020-06-06 00:52:15 +0100
committerGitHub <noreply@github.com>2020-06-06 00:52:15 +0100
commita54096e30523534e8eebb8dc1011b4536ed237a8 (patch)
tree9e905adc9c13fd843993cf3d6e4692fe240de5fb /Parser/pegen/parse_string.c
parentb084d1b97e369293d2d2bc0791e2135822c923a8 (diff)
downloadcpython-git-a54096e30523534e8eebb8dc1011b4536ed237a8.tar.gz
bpo-40883: Fix memory leak in fstring_compile_expr in parse_string.c (GH-20667)
Diffstat (limited to 'Parser/pegen/parse_string.c')
-rw-r--r--Parser/pegen/parse_string.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/Parser/pegen/parse_string.c b/Parser/pegen/parse_string.c
index e24ecc58d3..efe82df476 100644
--- a/Parser/pegen/parse_string.c
+++ b/Parser/pegen/parse_string.c
@@ -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);
if (tok == NULL) {
+ PyMem_RawFree(str);
return NULL;
}
Py_INCREF(p->tok->filename);
@@ -629,6 +630,7 @@ fstring_compile_expr(Parser *p, const char *expr_start, const char *expr_end,
result = expr;
exit:
+ PyMem_RawFree(str);
_PyPegen_Parser_Free(p2);
PyTokenizer_Free(tok);
return result;