bpo-37138: fix undefined behaviour with memcpy() on NULL array (GH-13867)
This commit is contained in:
parent
e7e5039d69
commit
1f9531764c
|
@ -71,7 +71,11 @@ method_vectorcall(PyObject *method, PyObject *const *args,
|
|||
}
|
||||
/* use borrowed references */
|
||||
newargs[0] = self;
|
||||
memcpy(newargs + 1, args, totalargs * sizeof(PyObject *));
|
||||
if (totalargs) { /* bpo-37138: if totalargs == 0, then args may be
|
||||
* NULL and calling memcpy() with a NULL pointer
|
||||
* is undefined behaviour. */
|
||||
memcpy(newargs + 1, args, totalargs * sizeof(PyObject *));
|
||||
}
|
||||
result = _PyObject_Vectorcall(func, newargs, nargs+1, kwnames);
|
||||
PyMem_Free(newargs);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue