Skip to content

Commit 5c814c8

Browse files
authored
gh-128198: Add missing error checks for usages of PyIter_Next() (GH-128199)
1 parent 81636d3 commit 5c814c8

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

Modules/_asynciomodule.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3599,6 +3599,13 @@ _asyncio_all_tasks_impl(PyObject *module, PyObject *loop)
35993599
Py_DECREF(item);
36003600
}
36013601
Py_DECREF(eager_iter);
3602+
3603+
if (PyErr_Occurred()) {
3604+
Py_DECREF(tasks);
3605+
Py_DECREF(loop);
3606+
return NULL;
3607+
}
3608+
36023609
int err = 0;
36033610
ASYNCIO_STATE_LOCK(state);
36043611
struct llist_node *node;
@@ -3636,6 +3643,12 @@ _asyncio_all_tasks_impl(PyObject *module, PyObject *loop)
36363643
}
36373644
Py_DECREF(scheduled_iter);
36383645
Py_DECREF(loop);
3646+
3647+
if (PyErr_Occurred()) {
3648+
Py_DECREF(tasks);
3649+
return NULL;
3650+
}
3651+
36393652
return tasks;
36403653
}
36413654

Objects/frameobject.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,10 @@ framelocalsproxy_merge(PyObject* self, PyObject* other)
264264

265265
Py_DECREF(iter);
266266

267+
if (PyErr_Occurred()) {
268+
return -1;
269+
}
270+
267271
return 0;
268272
}
269273

Objects/namespaceobject.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ namespace_repr(PyObject *ns)
141141
goto error;
142142
}
143143

144+
if (PyErr_Occurred()) {
145+
goto error;
146+
}
147+
144148
separator = PyUnicode_FromString(", ");
145149
if (separator == NULL)
146150
goto error;

0 commit comments

Comments
 (0)