From 88b1ba2c15ef6da94932502da5f2bbdc9cd26d3c Mon Sep 17 00:00:00 2001 From: Sebastian Berg Date: Thu, 1 Dec 2022 08:54:24 +0100 Subject: BUG: Fix some valgrind errors (and probably harmless warnings) --- numpy/core/src/multiarray/ctors.c | 6 ++++-- numpy/core/src/multiarray/scalartypes.c.src | 7 ++++--- 2 files changed, 8 insertions(+), 5 deletions(-) (limited to 'numpy/core/src') diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c index fc3942e91..4f0bc7337 100644 --- a/numpy/core/src/multiarray/ctors.c +++ b/numpy/core/src/multiarray/ctors.c @@ -1766,7 +1766,8 @@ PyArray_FromAny(PyObject *op, PyArray_Descr *newtype, int min_depth, } if (cache == NULL && newtype != NULL && - PyDataType_ISSIGNED(newtype) && PyArray_IsScalar(op, Generic)) { + PyDataType_ISSIGNED(dtype) && + PyArray_IsScalar(op, Generic)) { assert(ndim == 0); /* * This is an (possible) inconsistency where: @@ -3242,7 +3243,7 @@ _calc_length(PyObject *start, PyObject *stop, PyObject *step, PyObject **next, i NPY_NO_EXPORT PyObject * PyArray_ArangeObj(PyObject *start, PyObject *stop, PyObject *step, PyArray_Descr *dtype) { - PyArrayObject *range; + PyArrayObject *range = NULL; PyArray_ArrFuncs *funcs; PyObject *next = NULL; PyArray_Descr *native = NULL; @@ -3402,6 +3403,7 @@ PyArray_ArangeObj(PyObject *start, PyObject *stop, PyObject *step, PyArray_Descr Py_XDECREF(stop); Py_XDECREF(step); Py_XDECREF(next); + Py_XDECREF(range); return NULL; } diff --git a/numpy/core/src/multiarray/scalartypes.c.src b/numpy/core/src/multiarray/scalartypes.c.src index 18e793775..bb5d36ba1 100644 --- a/numpy/core/src/multiarray/scalartypes.c.src +++ b/numpy/core/src/multiarray/scalartypes.c.src @@ -3239,6 +3239,9 @@ void_arrtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) if (descr == NULL) { /* Use the "size-less" void dtype to discover the size. */ descr = PyArray_DescrNewFromType(NPY_VOID); + if (descr == NULL) { + return NULL; + } } else if (descr->type_num != NPY_VOID || PyDataType_HASSUBARRAY(descr)) { /* we reject subarrays, since subarray scalars do not exist. */ @@ -3246,11 +3249,9 @@ void_arrtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) "void: descr must be a `void` dtype that is not " "a subarray dtype (structured or unstructured). " "Got '%.100R'.", descr); + Py_DECREF(descr); return NULL; } - else { - Py_INCREF(descr); - } arr = PyArray_FromAny(obj, descr, 0, 0, NPY_ARRAY_FORCECAST, NULL); return PyArray_Return((PyArrayObject *)arr); -- cgit v1.2.1