]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-46347: Fix memory leak in PyEval_EvalCodeEx. (GH-30546)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 11 Jan 2022 23:09:22 +0000 (15:09 -0800)
committerGitHub <noreply@github.com>
Tue, 11 Jan 2022 23:09:22 +0000 (15:09 -0800)
First introduced in 0332e569c12d3dc97171546c6dc10e42c27de34b
(cherry picked from commit 607d8a838f29ad3c4c4e85b39f338dade5f9cafe)

Co-authored-by: Yury Selivanov <yury@edgedb.com>
Misc/NEWS.d/next/Core and Builtins/2022-01-11-13-57-00.bpo-46347.Gd8M-S.rst [new file with mode: 0644]
Python/ceval.c

diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-01-11-13-57-00.bpo-46347.Gd8M-S.rst b/Misc/NEWS.d/next/Core and Builtins/2022-01-11-13-57-00.bpo-46347.Gd8M-S.rst
new file mode 100644 (file)
index 0000000..fc12d6b
--- /dev/null
@@ -0,0 +1 @@
+Fix memory leak in PyEval_EvalCodeEx.
index 8ad1713b78c017df7b3920c3cef33d224563c545..e906076e27e5657ac65f77c19375ae9a90315306 100644 (file)
@@ -5132,16 +5132,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,