[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);
`