From bb98a0afd8598ce80f0e6d3f768b128eab68f40a Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Tue, 19 Nov 2024 19:19:39 +0100 Subject: [PATCH] [3.13] gh-126991: Fix reference leak in loading pickle's opcode BUILD (GH-126990) (GH-127018) If PyObject_SetItem() fails in the `load_build()` function of _pickle.c, no DECREF for the `dict` variable. (cherry picked from commit 29cbcbd73bbfd8c953c0b213fb33682c289934ff) Co-authored-by: Justin Applegate <70449145+Legoclones@users.noreply.github.com> --- Modules/_pickle.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/_pickle.c b/Modules/_pickle.c index d20f3e5097a3a0..9bb3947e0967a4 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -6659,6 +6659,7 @@ load_build(PickleState *st, UnpicklerObject *self) } if (PyObject_SetItem(dict, d_key, d_value) < 0) { Py_DECREF(d_key); + Py_DECREF(dict); goto error; } Py_DECREF(d_key);