summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/core/src/multiarray/ctors.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c
index 851244adf..4f88899e9 100644
--- a/numpy/core/src/multiarray/ctors.c
+++ b/numpy/core/src/multiarray/ctors.c
@@ -933,6 +933,14 @@ PyArray_NewFromDescr_int(
int i;
npy_intp nbytes;
+ if ((unsigned int)nd > (unsigned int)NPY_MAXDIMS) {
+ PyErr_Format(PyExc_ValueError,
+ "number of dimensions must be within [0, %d]",
+ NPY_MAXDIMS);
+ Py_DECREF(descr);
+ return NULL;
+ }
+
if (descr->subarray) {
PyObject *ret;
npy_intp newdims[2*NPY_MAXDIMS];
@@ -952,13 +960,6 @@ PyArray_NewFromDescr_int(
return ret;
}
- if ((unsigned int)nd > (unsigned int)NPY_MAXDIMS) {
- PyErr_Format(PyExc_ValueError,
- "number of dimensions must be within [0, %d]",
- NPY_MAXDIMS);
- Py_DECREF(descr);
- return NULL;
- }
/* Check datatype element size */
nbytes = descr->elsize;