From: Serhiy Storchaka Date: Fri, 1 Jan 2021 17:40:11 +0000 (+0200) Subject: [3.8] bpo-42425: Fix possible leak in initialization of errmap for OSError (GH-23446... X-Git-Tag: v3.8.8rc1~64 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1a544e1dcf8e0880ee35ce78a7f90fc4e5c98c4f;p=thirdparty%2FPython%2Fcpython.git [3.8] bpo-42425: Fix possible leak in initialization of errmap for OSError (GH-23446). (GH-24025) (cherry picked from commit ed1007c0d74e658d1e6c9b51b12ce7501eb8cbf9) --- diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 8bcf76ff860a..d22ed6f039ac 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -2518,8 +2518,10 @@ _PyExc_Init(void) do { \ PyObject *_code = PyLong_FromLong(CODE); \ assert(_PyObject_RealIsSubclass(PyExc_ ## TYPE, PyExc_OSError)); \ - if (!_code || PyDict_SetItem(errnomap, _code, PyExc_ ## TYPE)) \ + if (!_code || PyDict_SetItem(errnomap, _code, PyExc_ ## TYPE)) { \ + Py_XDECREF(_code); \ return _PyStatus_ERR("errmap insertion problem."); \ + } \ Py_DECREF(_code); \ } while (0)