gh-118613: Fix error handling of `_PyEval_GetFrameLocals` in `ceval.c` (#118614)

This commit is contained in:
Nikita Sobolev 2024-05-06 10:34:56 +03:00 committed by GitHub
parent 1506d5adc4
commit a8e5fed100
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 8 additions and 4 deletions

View File

@ -2496,17 +2496,21 @@ _PyEval_GetFrameLocals(void)
if (PyFrameLocalsProxy_Check(locals)) {
PyObject* ret = PyDict_New();
if (PyDict_Update(ret, locals)) {
if (ret == NULL) {
Py_DECREF(locals);
return NULL;
}
if (PyDict_Update(ret, locals) < 0) {
Py_DECREF(ret);
Py_DECREF(locals);
return NULL;
}
Py_DECREF(locals);
return ret;
} else if (PyMapping_Check(locals)) {
return locals;
}
return NULL;
assert(PyMapping_Check(locals));
return locals;
}
PyObject *