summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan van der Walt <stefan@sun.ac.za>2011-11-09 11:21:14 -0800
committerCharles Harris <charlesr.harris@gmail.com>2011-11-27 13:24:15 -0700
commiteb46577e7be25d0a578d6275683ae6f28ac8ae06 (patch)
tree5e4bae3f6b0c7852d287bc92dceab2ed4bebf77c
parent04d225afa2b7b780a735fd95eb557ac3eb66e686 (diff)
downloadnumpy-eb46577e7be25d0a578d6275683ae6f28ac8ae06.tar.gz
BUG: Do not segfault on dot between sparse matrices.
-rw-r--r--numpy/core/src/multiarray/multiarraymodule.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/multiarraymodule.c b/numpy/core/src/multiarray/multiarraymodule.c
index cfbc0a3af..d06e782a1 100644
--- a/numpy/core/src/multiarray/multiarraymodule.c
+++ b/numpy/core/src/multiarray/multiarraymodule.c
@@ -945,12 +945,16 @@ PyArray_MatrixProduct2(PyObject *op1, PyObject *op2, PyArrayObject* out)
char *op;
npy_intp dimensions[NPY_MAXDIMS];
PyArray_DotFunc *dot;
- PyArray_Descr *typec;
+ PyArray_Descr *typec = NULL;
NPY_BEGIN_THREADS_DEF;
typenum = PyArray_ObjectType(op1, 0);
typenum = PyArray_ObjectType(op2, typenum);
typec = PyArray_DescrFromType(typenum);
+ if (typec == NULL) {
+ PyErr_SetString(PyExc_ValueError, "Cannot find a common data type.");
+ return NULL;
+ }
Py_INCREF(typec);
ap1 = (PyArrayObject *)PyArray_FromAny(op1, typec, 0, 0,