]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-145376: Fix refleak & pointer type bug in uncommon code paths in Parser/ (GH-145684)
authorPieter Eendebak <pieter.eendebak@gmail.com>
Wed, 11 Mar 2026 13:24:15 +0000 (14:24 +0100)
committerGitHub <noreply@github.com>
Wed, 11 Mar 2026 13:24:15 +0000 (14:24 +0100)
Parser/pegen.c

index 7ecc55eee137756d4b9851872830314677012cd2..569f5afb3120085e6ba7ded981baffc0102232ab 100644 (file)
@@ -924,7 +924,6 @@ _PyPegen_set_syntax_error_metadata(Parser *p) {
         the_source // N gives ownership to metadata
     );
     if (!metadata) {
-        Py_DECREF(the_source);
         PyErr_Clear();
         return;
     }
@@ -1026,8 +1025,8 @@ _PyPegen_run_parser_from_file_pointer(FILE *fp, int start_rule, PyObject *filena
 
     if (tok->fp_interactive && tok->interactive_src_start && result && interactive_src != NULL) {
         *interactive_src = PyUnicode_FromString(tok->interactive_src_start);
-        if (!interactive_src || _PyArena_AddPyObject(arena, *interactive_src) < 0) {
-            Py_XDECREF(interactive_src);
+        if (!*interactive_src || _PyArena_AddPyObject(arena, *interactive_src) < 0) {
+            Py_XDECREF(*interactive_src);
             result = NULL;
             goto error;
         }