Commit c6ea8974 authored by Zackery Spytz's avatar Zackery Spytz Committed by Serhiy Storchaka

bpo-30640: Fix undefined behavior in _PyFunction_FastCallDict() and PyEval_EvalCodeEx() (#2919)

k + 1 was calculated with k = NULL.
parent a568e527
...@@ -374,7 +374,7 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, ...@@ -374,7 +374,7 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
result = _PyEval_EvalCodeWithName((PyObject*)co, globals, (PyObject *)NULL, result = _PyEval_EvalCodeWithName((PyObject*)co, globals, (PyObject *)NULL,
args, nargs, args, nargs,
k, k + 1, nk, 2, k, k != NULL ? k + 1 : NULL, nk, 2,
d, nd, kwdefs, d, nd, kwdefs,
closure, name, qualname); closure, name, qualname);
Py_XDECREF(kwtuple); Py_XDECREF(kwtuple);
......
...@@ -4220,7 +4220,8 @@ PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals, ...@@ -4220,7 +4220,8 @@ PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,
{ {
return _PyEval_EvalCodeWithName(_co, globals, locals, return _PyEval_EvalCodeWithName(_co, globals, locals,
args, argcount, args, argcount,
kws, kws + 1, kwcount, 2, kws, kws != NULL ? kws + 1 : NULL,
kwcount, 2,
defs, defcount, defs, defcount,
kwdefs, closure, kwdefs, closure,
NULL, NULL); NULL, NULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment