bpo-30640: Fix undefined behavior in _PyFunction_FastCallDict() and P… · python/cpython@c6ea897 (original) (raw)

2 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -374,7 +374,7 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,
374 374
375 375 result = _PyEval_EvalCodeWithName((PyObject*)co, globals, (PyObject *)NULL,
376 376 args, nargs,
377 -k, k + 1, nk, 2,
377 +k, k != NULL ? k + 1 : NULL, nk, 2,
378 378 d, nd, kwdefs,
379 379 closure, name, qualname);
380 380 Py_XDECREF(kwtuple);
Original file line number Diff line number Diff line change
@@ -4220,7 +4220,8 @@ PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,
4220 4220 {
4221 4221 return _PyEval_EvalCodeWithName(_co, globals, locals,
4222 4222 args, argcount,
4223 -kws, kws + 1, kwcount, 2,
4223 +kws, kws != NULL ? kws + 1 : NULL,
4224 +kwcount, 2,
4224 4225 defs, defcount,
4225 4226 kwdefs, closure,
4226 4227 NULL, NULL);