diff --git a/Misc/NEWS b/Misc/NEWS index bc127e70a1a..50a33315644 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -22,6 +22,8 @@ Core and Builtins Library ------- +- Issue #4373: Corrected a potential reference leak in the pickle module. + - Issue #4382: dbm.dumb did not specify the expected file encoding for opened files. diff --git a/Modules/_pickle.c b/Modules/_pickle.c index c1facd83813..a0810b99a9f 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -486,11 +486,13 @@ unpickler_read(UnpicklerObject *self, char **s, Py_ssize_t n) PyErr_SetString(PyExc_ValueError, "read() from the underlying stream did not" "return bytes"); + Py_DECREF(data); return -1; } if (PyBytes_GET_SIZE(data) != n) { PyErr_SetNone(PyExc_EOFError); + Py_DECREF(data); return -1; }