From: Pablo Galindo Date: Sat, 11 May 2019 19:54:37 +0000 (+0100) Subject: bpo-36817: Fix reference leak for expr_text in f-string = parsing (GH-13249) X-Git-Tag: v3.8.0b1~405 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5833e94d8615ea18b14e4830ecdb868aec81b378;p=python bpo-36817: Fix reference leak for expr_text in f-string = parsing (GH-13249) --- diff --git a/Python/ast.c b/Python/ast.c index 21abd7e88d..585f8b3fba 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -5228,10 +5228,15 @@ fstring_find_expr(const char **str, const char *end, int raw, int recurse_lvl, } if (equal_flag) { - Py_ssize_t len = expr_text_end-expr_start; + Py_ssize_t len = expr_text_end - expr_start; expr_text = PyUnicode_FromStringAndSize(expr_start, len); - if (!expr_text) + if (!expr_text) { goto error; + } + if (PyArena_AddPyObject(c->c_arena, expr_text) < 0) { + Py_DECREF(expr_text); + goto error; + } } /* Check for the format spec, if present. */