diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c index 7966874b517e..f381d2879217 100644 --- a/numpy/core/src/multiarray/ctors.c +++ b/numpy/core/src/multiarray/ctors.c @@ -968,7 +968,7 @@ setArrayFromSequence(PyArrayObject *a, PyObject *s, int dim, intp offset) } offset += a->strides[dim]; } - + Py_DECREF(s); return 0; @@ -2774,7 +2774,7 @@ PyArray_ArangeObj(PyObject *start, PyObject *stop, PyObject *step, PyArray_Descr /* calculate the length and next = start + step*/ length = _calc_length(start, stop, step, &next, PyTypeNum_ISCOMPLEX(dtype->type_num)); - err = PyErr_Occurred(); + err = PyErr_Occurred(); if (err) { Py_DECREF(dtype); if (err && PyErr_GivenExceptionMatches(err, PyExc_OverflowError)) { @@ -3030,6 +3030,10 @@ PyArray_FromFile(FILE *fp, PyArray_Descr *dtype, intp num, char *sep) (next_element) fromfile_next_element, (skip_separator) fromfile_skip_separator, NULL); } + if (ret == NULL) { + Py_DECREF(dtype); + return NULL; + } if (((intp) nread) < num) { /* Realloc memory for smaller number of elements */ const size_t nsize = NPY_MAX(nread,1)*ret->descr->elsize;