mirror of
https://github.com/python/cpython.git
synced 2024-11-24 08:52:25 +01:00
gh-126405: fix use-after-free in _asyncio.Future.remove_done_callback
(#126733)
This commit is contained in:
parent
0ef84b0e2b
commit
37c57dfad1
@ -1017,8 +1017,10 @@ _asyncio_Future_remove_done_callback_impl(FutureObj *self, PyTypeObject *cls,
|
|||||||
|
|
||||||
if (len == 1) {
|
if (len == 1) {
|
||||||
PyObject *cb_tup = PyList_GET_ITEM(self->fut_callbacks, 0);
|
PyObject *cb_tup = PyList_GET_ITEM(self->fut_callbacks, 0);
|
||||||
|
Py_INCREF(cb_tup);
|
||||||
int cmp = PyObject_RichCompareBool(
|
int cmp = PyObject_RichCompareBool(
|
||||||
PyTuple_GET_ITEM(cb_tup, 0), fn, Py_EQ);
|
PyTuple_GET_ITEM(cb_tup, 0), fn, Py_EQ);
|
||||||
|
Py_DECREF(cb_tup);
|
||||||
if (cmp == -1) {
|
if (cmp == -1) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user