Browse Source

bpo-46347: Fix memory leak in PyEval_EvalCodeEx. (#30546)

First introduced in 0332e569c1
pull/30550/head
Yury Selivanov 4 years ago
committed by GitHub
parent
commit
607d8a838f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Misc/NEWS.d/next/Core and Builtins/2022-01-11-13-57-00.bpo-46347.Gd8M-S.rst
  2. 7
      Python/ceval.c

1
Misc/NEWS.d/next/Core and Builtins/2022-01-11-13-57-00.bpo-46347.Gd8M-S.rst

@ -0,0 +1 @@
Fix memory leak in PyEval_EvalCodeEx.

7
Python/ceval.c

@ -6128,16 +6128,9 @@ PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,
}
allargs = newargs;
}
PyObject **kwargs = PyMem_Malloc(sizeof(PyObject *)*kwcount);
if (kwargs == NULL) {
res = NULL;
Py_DECREF(kwnames);
goto fail;
}
for (int i = 0; i < kwcount; i++) {
Py_INCREF(kws[2*i]);
PyTuple_SET_ITEM(kwnames, i, kws[2*i]);
kwargs[i] = kws[2*i+1];
}
PyFrameConstructor constr = {
.fc_globals = globals,

Loading…
Cancel
Save