[Numpy-discussion] bug in PyArray_GetCastFunc
Geoffrey Irving
irving at naml.us
Sat Dec 3 19:28:10 EST 2011
When attempting to cast to a user defined type, PyArray_GetCast looks
up the cast function in the dictionary but doesn't check if the entry
exists. This causes segfaults. Here's a patch.
Geoffrey
diff --git a/numpy/core/src/multiarray/convert_datatype.c
b/numpy/core/src/multiarray/convert_datatype.c
index 818d558..4b8f38b 100644
--- a/numpy/core/src/multiarray/convert_datatype.c
+++ b/numpy/core/src/multiarray/convert_datatype.c
@@ -81,7 +81,7 @@ PyArray_GetCastFunc(PyArray_Descr *descr, int type_num)
key = PyInt_FromLong(type_num);
cobj = PyDict_GetItem(obj, key);
Py_DECREF(key);
- if (NpyCapsule_Check(cobj)) {
+ if (cobj && NpyCapsule_Check(cobj)) {
castfunc = NpyCapsule_AsVoidPtr(cobj);
}
}
More information about the NumPy-Discussion
mailing list