From: Victor Stinner Date: Mon, 8 Jul 2013 22:27:12 +0000 (+0200) Subject: Issue #18408: Fix ConvParam() of the ctypes module to handle paramfunc failure X-Git-Tag: v3.4.0a1~279 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3f15cf0961946702c87e09bc312b2bfec39654b6;p=python Issue #18408: Fix ConvParam() of the ctypes module to handle paramfunc failure (MemoryError). --- diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 701961150b..ead1c6f62a 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -620,6 +620,8 @@ static int ConvParam(PyObject *obj, Py_ssize_t index, struct argument *pa) assert(dict->paramfunc); /* If it has an stgdict, it is a CDataObject */ carg = dict->paramfunc((CDataObject *)obj); + if (carg == NULL) + return -1; pa->ffi_type = carg->pffi_type; memcpy(&pa->value, &carg->value, sizeof(pa->value)); pa->keep = (PyObject *)carg;