ctypes: fix CThunkObject_new()
* Initialize restype and flags fields to fix a crash when Python runs on a read-only file system * Use Py_ssize_t type rather than int for the "i" iterator variable * Reorder assignements to be able to more easily check if all fields are initialized Issue #11048. Initial patch written by Marcin Bachry.
This commit is contained in:
parent
25539b089f
commit
e33797b686
|
@ -305,7 +305,7 @@ static void closure_fcn(ffi_cif *cif,
|
||||||
static CThunkObject* CThunkObject_new(Py_ssize_t nArgs)
|
static CThunkObject* CThunkObject_new(Py_ssize_t nArgs)
|
||||||
{
|
{
|
||||||
CThunkObject *p;
|
CThunkObject *p;
|
||||||
int i;
|
Py_ssize_t i;
|
||||||
|
|
||||||
p = PyObject_GC_NewVar(CThunkObject, &PyCThunk_Type, nArgs);
|
p = PyObject_GC_NewVar(CThunkObject, &PyCThunk_Type, nArgs);
|
||||||
if (p == NULL) {
|
if (p == NULL) {
|
||||||
|
@ -313,11 +313,13 @@ static CThunkObject* CThunkObject_new(Py_ssize_t nArgs)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
p->pcl_exec = NULL;
|
|
||||||
p->pcl_write = NULL;
|
p->pcl_write = NULL;
|
||||||
|
p->pcl_exec = NULL;
|
||||||
memset(&p->cif, 0, sizeof(p->cif));
|
memset(&p->cif, 0, sizeof(p->cif));
|
||||||
|
p->flags = 0;
|
||||||
p->converters = NULL;
|
p->converters = NULL;
|
||||||
p->callable = NULL;
|
p->callable = NULL;
|
||||||
|
p->restype = NULL;
|
||||||
p->setfunc = NULL;
|
p->setfunc = NULL;
|
||||||
p->ffi_restype = NULL;
|
p->ffi_restype = NULL;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue