[3.6] bpo-30640: Fix undefined behavior in _PyFunction_FastCallDict()… · python/cpython@f032e92 (original) (raw)

`@@ -4171,7 +4171,8 @@ PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,

`

4171

4171

`{

`

4172

4172

`return _PyEval_EvalCodeWithName(_co, globals, locals,

`

4173

4173

`args, argcount,

`

4174

``

`-

kws, kws + 1, kwcount, 2,

`

``

4174

`+

kws, kws != NULL ? kws + 1 : NULL,

`

``

4175

`+

kwcount, 2,

`

4175

4176

`defs, defcount,

`

4176

4177

`kwdefs, closure,

`

4177

4178

`NULL, NULL);

`

`@@ -5053,7 +5054,7 @@ _PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs,

`

5053

5054

``

5054

5055

`result = _PyEval_EvalCodeWithName((PyObject*)co, globals, (PyObject *)NULL,

`

5055

5056

`args, nargs,

`

5056

``

`-

k, k + 1, nk, 2,

`

``

5057

`+

k, k != NULL ? k + 1 : NULL, nk, 2,

`

5057

5058

`d, nd, kwdefs,

`

5058

5059

`closure, name, qualname);

`

5059

5060

`Py_XDECREF(kwtuple);

`