bpo-42425: Fix possible leak in initialization of errmap for OSError (GH-23446)

This commit is contained in:
Serhiy Storchaka 2020-11-21 19:17:46 +02:00 committed by GitHub
parent 0e62efc51e
commit ed1007c0d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 1 deletions

View File

@ -2547,8 +2547,10 @@ _PyExc_Init(PyThreadState *tstate)
do { \ do { \
PyObject *_code = PyLong_FromLong(CODE); \ PyObject *_code = PyLong_FromLong(CODE); \
assert(_PyObject_RealIsSubclass(PyExc_ ## TYPE, PyExc_OSError)); \ assert(_PyObject_RealIsSubclass(PyExc_ ## TYPE, PyExc_OSError)); \
if (!_code || PyDict_SetItem(state->errnomap, _code, PyExc_ ## TYPE)) \ if (!_code || PyDict_SetItem(state->errnomap, _code, PyExc_ ## TYPE)) { \
Py_XDECREF(_code); \
return _PyStatus_ERR("errmap insertion problem."); \ return _PyStatus_ERR("errmap insertion problem."); \
} \
Py_DECREF(_code); \ Py_DECREF(_code); \
} while (0) } while (0)