]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-128198: Add missing error checks for usages of PyIter_Next() (GH-128199)
authorYan Yanchii <yyanchiy@gmail.com>
Wed, 25 Dec 2024 17:42:04 +0000 (18:42 +0100)
committerGitHub <noreply@github.com>
Wed, 25 Dec 2024 17:42:04 +0000 (19:42 +0200)
Modules/_asynciomodule.c
Objects/frameobject.c
Objects/namespaceobject.c

index 603b77a70b15d4db64a78bd724b4cad2ae2fbecb..74db4c74af905a90c552bdd265b4ea0fa02ae912 100644 (file)
@@ -3599,6 +3599,13 @@ _asyncio_all_tasks_impl(PyObject *module, PyObject *loop)
         Py_DECREF(item);
     }
     Py_DECREF(eager_iter);
+
+    if (PyErr_Occurred()) {
+        Py_DECREF(tasks);
+        Py_DECREF(loop);
+        return NULL;
+    }
+
     int err = 0;
     ASYNCIO_STATE_LOCK(state);
     struct llist_node *node;
@@ -3636,6 +3643,12 @@ _asyncio_all_tasks_impl(PyObject *module, PyObject *loop)
     }
     Py_DECREF(scheduled_iter);
     Py_DECREF(loop);
+
+    if (PyErr_Occurred()) {
+        Py_DECREF(tasks);
+        return NULL;
+    }
+
     return tasks;
 }
 
index 10fd3a982c36f4aec9c847584bd941197e2559ee..4f0040df4f30172e11e7eee16f4404b85b49e0a4 100644 (file)
@@ -264,6 +264,10 @@ framelocalsproxy_merge(PyObject* self, PyObject* other)
 
     Py_DECREF(iter);
 
+    if (PyErr_Occurred()) {
+        return -1;
+    }
+
     return 0;
 }
 
index 5b7547103a2b3fc5f239effe70a45934a3b6e056..4ef3bd92f5a56968cf490817f1a60e54c2756637 100644 (file)
@@ -141,6 +141,10 @@ namespace_repr(PyObject *ns)
             goto error;
     }
 
+    if (PyErr_Occurred()) {
+        goto error;
+    }
+
     separator = PyUnicode_FromString(", ");
     if (separator == NULL)
         goto error;