bpo-36817: Fix reference leak for expr_text in f-string = parsing (GH-13249)

This commit is contained in:
Pablo Galindo 2019-05-11 20:54:37 +01:00 committed by GitHub
parent 90fb04c1e2
commit 5833e94d86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 2 deletions

View File

@ -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. */