From: Sergey Miryanov Date: Fri, 27 Mar 2026 21:40:23 +0000 (+0500) Subject: [3.13] Fix possible memory leak in OrderedDict popitem (GH-145247) (#146538) X-Git-Tag: v3.13.13~42 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ef8475f492c8367391fd72a4789cfa1d9b5250af;p=thirdparty%2FPython%2Fcpython.git [3.13] Fix possible memory leak in OrderedDict popitem (GH-145247) (#146538) --- 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);