diff options
author | Nathan Goldbaum <nathan.goldbaum@gmail.com> | 2023-03-16 12:02:14 -0600 |
---|---|---|
committer | Nathan Goldbaum <nathan.goldbaum@gmail.com> | 2023-03-17 09:52:37 -0600 |
commit | e5f261e32b204ca6a9937e2cbebd065fa15b814d (patch) | |
tree | 1efb18a80d25c411bfc73ae4a960e823afec84a4 /numpy/core/src | |
parent | a24e785ead6dbd80050cb157326a6a23b279d4e4 (diff) | |
download | numpy-e5f261e32b204ca6a9937e2cbebd065fa15b814d.tar.gz |
BUG: handle errors from PyArray_AdaptDescriptorToArray
Diffstat (limited to 'numpy/core/src')
-rw-r--r-- | numpy/core/src/multiarray/multiarraymodule.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/numpy/core/src/multiarray/multiarraymodule.c b/numpy/core/src/multiarray/multiarraymodule.c index e4b8cb8df..a5d8d96a7 100644 --- a/numpy/core/src/multiarray/multiarraymodule.c +++ b/numpy/core/src/multiarray/multiarraymodule.c @@ -1656,9 +1656,13 @@ _array_fromobject_generic( PyArray_Descr* dtype = PyArray_AdaptDescriptorToArray( oparr, dt_info.dtype, dt_info.descr); if (dtype == NULL) { + return NULL; + } + if ((dt_info.descr == NULL) && (dt_info.dtype == NULL)) { if (copy != NPY_COPY_ALWAYS && STRIDING_OK(oparr, order)) { ret = oparr; Py_INCREF(ret); + Py_DECREF(dtype); goto finish; } else { @@ -1668,6 +1672,7 @@ _array_fromobject_generic( return NULL; } ret = (PyArrayObject *)PyArray_NewCopy(oparr, order); + Py_DECREF(dtype); goto finish; } } |