[Python-checkins] [3.8] bpo-42425: Fix possible leak in initialization of errmap for OSError (GH-23446). (GH-24025)

serhiy-storchaka webhook-mailer at python.org
Fri Jan 1 12:40:15 EST 2021


https://github.com/python/cpython/commit/1a544e1dcf8e0880ee35ce78a7f90fc4e5c98c4f
commit: 1a544e1dcf8e0880ee35ce78a7f90fc4e5c98c4f
branch: 3.8
author: Serhiy Storchaka <storchaka at gmail.com>
committer: serhiy-storchaka <storchaka at gmail.com>
date: 2021-01-01T19:40:11+02:00
summary:

[3.8] bpo-42425: Fix possible leak in initialization of errmap for OSError (GH-23446). (GH-24025)

(cherry picked from commit ed1007c0d74e658d1e6c9b51b12ce7501eb8cbf9)

files:
M Objects/exceptions.c

diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index 8bcf76ff860a2..d22ed6f039ac2 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)
 



More information about the Python-checkins mailing list