https://github.com/python/cpython/commit/7992a295123489f1b31b8b5724f02188cbe32e51
commit: 7992a295123489f1b31b8b5724f02188cbe32e51
branch: 3.13
author: Miss Islington (bot) <[email protected]>
committer: kumaraditya303 <[email protected]>
date: 2025-10-14T13:40:13Z
summary:

[3.13] GH-140058: Clear key and value if `PyTuple_New` fails in 
`dictiter_iternextitem` (GH-140059) (#140108)

GH-140058: Clear key and value if `PyTuple_New` fails in 
`dictiter_iternextitem` (GH-140059)
(cherry picked from commit ded59f7e8e93274488584574ff2336a98bc4eff6)

Co-authored-by: Sergey Miryanov <[email protected]>

files:
M Objects/dictobject.c

diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 6937a140f1a396..3ab080b3e73449 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -5611,8 +5611,11 @@ dictiter_iternextitem(PyObject *self)
         }
         else {
             result = PyTuple_New(2);
-            if (result == NULL)
+            if (result == NULL) {
+                Py_DECREF(key);
+                Py_DECREF(value);
                 return NULL;
+            }
             PyTuple_SET_ITEM(result, 0, key);
             PyTuple_SET_ITEM(result, 1, value);
         }

_______________________________________________
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