summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2020-06-06 00:10:57 (GMT)
committerGitHub <noreply@github.com>2020-06-06 00:10:57 (GMT)
commit79e6c15aed9b4b50efd39ddaf1dc40c374b51213 (patch)
tree94fbad52f96b6651b95bbc54edd25eb8467518f7
parenta4fa9a95153a3800dea60b3029b2dcaf8a4f6acb (diff)
downloadcpython-79e6c15aed9b4b50efd39ddaf1dc40c374b51213.zip
cpython-79e6c15aed9b4b50efd39ddaf1dc40c374b51213.tar.gz
cpython-79e6c15aed9b4b50efd39ddaf1dc40c374b51213.tar.bz2
bpo-40883: Fix memory leak in fstring_compile_expr in parse_string.c (GH-20667)
(cherry picked from commit a54096e30523534e8eebb8dc1011b4536ed237a8) Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
-rw-r--r--Misc/NEWS.d/next/Core and Builtins/2020-06-05-23-25-00.bpo-40883.M6sQ-Q.rst1
-rw-r--r--Parser/pegen/parse_string.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-05-23-25-00.bpo-40883.M6sQ-Q.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-05-23-25-00.bpo-40883.M6sQ-Q.rst
new file mode 100644
index 0000000..ebeb0cc
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-05-23-25-00.bpo-40883.M6sQ-Q.rst
@@ -0,0 +1 @@
+Fix memory leak in when parsing f-strings in the new parser. Patch by Pablo Galindo \ No newline at end of file
diff --git a/Parser/pegen/parse_string.c b/Parser/pegen/parse_string.c
index e24ecc5..efe82df 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;