https://github.com/python/cpython/commit/ef8475f492c8367391fd72a4789cfa1d9b5250af
commit: ef8475f492c8367391fd72a4789cfa1d9b5250af
branch: 3.13
author: Sergey Miryanov <[email protected]>
committer: vstinner <[email protected]>
date: 2026-03-27T21:40:23Z
summary:
[3.13] Fix possible memory leak in OrderedDict popitem (GH-145247) (#146538)
files:
M Objects/odictobject.c
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
index 0cb352b4e09e73..ca5f7c8d3a8c09 100644
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -1148,8 +1148,10 @@ OrderedDict_popitem_impl(PyODictObject *self, int last)
node = last ? _odict_LAST(self) : _odict_FIRST(self);
key = Py_NewRef(_odictnode_KEY(node));
value = _odict_popkey_hash((PyObject *)self, key, NULL,
_odictnode_HASH(node));
- if (value == NULL)
+ if (value == NULL) {
+ Py_DECREF(key);
return NULL;
+ }
item = PyTuple_Pack(2, key, value);
Py_DECREF(key);
Py_DECREF(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]