From ef8475f492c8367391fd72a4789cfa1d9b5250af Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sat, 28 Mar 2026 02:40:23 +0500 Subject: [PATCH] [3.13] Fix possible memory leak in OrderedDict popitem (GH-145247) (#146538) --- Objects/odictobject.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Objects/odictobject.c b/Objects/odictobject.c index 0cb352b4e09e..ca5f7c8d3a8c 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); -- 2.47.3