diff options
author | 2021-04-09 01:05:44 +0200 | |
---|---|---|
committer | 2021-04-09 00:05:44 +0100 | |
commit | c0e11a3ceb9427e09db4224f394c7789bf6deec5 (patch) | |
tree | cbb3723e713e4c3ac00185fadf2459d8d4e974db /Parser/pegen.c | |
parent | bpo-39702: Remove dotted_name from decorator documentation (GH-25234) (diff) | |
download | cpython-c0e11a3ceb9427e09db4224f394c7789bf6deec5.tar.gz cpython-c0e11a3ceb9427e09db4224f394c7789bf6deec5.tar.bz2 cpython-c0e11a3ceb9427e09db4224f394c7789bf6deec5.zip |
Fix possible refleak involving _PyArena_AddPyObject (GH-25289)
Diffstat (limited to 'Parser/pegen.c')
-rw-r--r-- | Parser/pegen.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Parser/pegen.c b/Parser/pegen.c index 82dcd3bb5a8..7b5a5e91468 100644 --- a/Parser/pegen.c +++ b/Parser/pegen.c @@ -690,7 +690,10 @@ _PyPegen_fill_token(Parser *p) if (t->bytes == NULL) { return -1; } - _PyArena_AddPyObject(p->arena, t->bytes); + if (_PyArena_AddPyObject(p->arena, t->bytes) < 0) { + Py_DECREF(t->bytes); + return -1; + } int lineno = type == STRING ? p->tok->first_lineno : p->tok->lineno; const char *line_start = type == STRING ? p->tok->multi_line_start : p->tok->line_start; |