summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-07-09 00:27:12 +0200
committerVictor Stinner <victor.stinner@gmail.com>2013-07-09 00:27:12 +0200
commit3f15cf0961946702c87e09bc312b2bfec39654b6 (patch)
treebc015898d9fca1ba99add897891b7023ac17a02f
parent78094ac53eff9bb9a2efadd1b03d8175d773afcd (diff)
downloadcpython-git-3f15cf0961946702c87e09bc312b2bfec39654b6.tar.gz
Issue #18408: Fix ConvParam() of the ctypes module to handle paramfunc failure
(MemoryError).
-rw-r--r--Modules/_ctypes/callproc.c2
1 files changed, 2 insertions, 0 deletions
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;