https://github.com/python/cpython/commit/2da063e0b2823a770e898f2b7babe2dfc006b8d5
commit: 2da063e0b2823a770e898f2b7babe2dfc006b8d5
branch: 3.13
author: Miss Islington (bot) <[email protected]>
committer: kumaraditya303 <[email protected]>
date: 2024-11-12T13:04:27Z
summary:

[3.13] gh-126405: fix use-after-free in `_asyncio.Future.remove_done_callback` 
(GH-126733) (#126736)

gh-126405: fix use-after-free in `_asyncio.Future.remove_done_callback` 
(GH-126733)
(cherry picked from commit 37c57dfad12744608091653fd753a1f770e2479b)

Co-authored-by: Kumar Aditya <[email protected]>

files:
M Modules/_asynciomodule.c

diff --git a/Modules/_asynciomodule.c b/Modules/_asynciomodule.c
index 79896c6b9fdd92..7e2fe28423399f 100644
--- a/Modules/_asynciomodule.c
+++ b/Modules/_asynciomodule.c
@@ -994,8 +994,10 @@ _asyncio_Future_remove_done_callback_impl(FutureObj *self, 
PyTypeObject *cls,
 
     if (len == 1) {
         PyObject *cb_tup = PyList_GET_ITEM(self->fut_callbacks, 0);
+        Py_INCREF(cb_tup);
         int cmp = PyObject_RichCompareBool(
             PyTuple_GET_ITEM(cb_tup, 0), fn, Py_EQ);
+        Py_DECREF(cb_tup);
         if (cmp == -1) {
             return NULL;
         }

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to