diff options
| author | Sebastian Berg <sebastian@sipsolutions.net> | 2022-02-03 11:36:55 -0600 |
|---|---|---|
| committer | Charles Harris <charlesr.harris@gmail.com> | 2022-02-03 11:45:05 -0700 |
| commit | a8d8408e45f0bfd470a0465e8dd14c1fc2f90f2e (patch) | |
| tree | 0d8f4b92ee4f7fa18ca8b17cd27212e1b313d6b5 /numpy | |
| parent | da47aa2c3d1df2d7c3fbab8eca1a36b242befb60 (diff) | |
| download | numpy-a8d8408e45f0bfd470a0465e8dd14c1fc2f90f2e.tar.gz | |
MAINT: Further small return value validation fixes
Diffstat (limited to 'numpy')
| -rw-r--r-- | numpy/core/src/multiarray/buffer.c | 2 | ||||
| -rw-r--r-- | numpy/core/src/multiarray/ctors.c | 3 | ||||
| -rw-r--r-- | numpy/core/src/multiarray/descriptor.c | 7 | ||||
| -rw-r--r-- | numpy/core/src/multiarray/methods.c | 4 |
4 files changed, 12 insertions, 4 deletions
diff --git a/numpy/core/src/multiarray/buffer.c b/numpy/core/src/multiarray/buffer.c index d14f87abb..13d7038d3 100644 --- a/numpy/core/src/multiarray/buffer.c +++ b/numpy/core/src/multiarray/buffer.c @@ -1057,7 +1057,7 @@ _descriptor_from_pep3118_format_fast(char const *s, PyObject **result) else { *result = (PyObject*)PyArray_DescrNewByteorder(descr, byte_order); Py_DECREF(descr); - if (result == NULL) { + if (*result == NULL) { return 0; } } diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c index 2535569a6..4464d7ead 100644 --- a/numpy/core/src/multiarray/ctors.c +++ b/numpy/core/src/multiarray/ctors.c @@ -1881,6 +1881,9 @@ PyArray_CheckFromAny(PyObject *op, PyArray_Descr *descr, int min_depth, if (!descr && PyArray_Check(op) && PyArray_ISBYTESWAPPED((PyArrayObject* )op)) { descr = PyArray_DescrNew(PyArray_DESCR((PyArrayObject *)op)); + if (descr == NULL) { + return NULL; + } } else if (descr && !PyArray_ISNBO(descr->byteorder)) { PyArray_DESCR_REPLACE(descr); diff --git a/numpy/core/src/multiarray/descriptor.c b/numpy/core/src/multiarray/descriptor.c index a5cb6a9fc..07abc755f 100644 --- a/numpy/core/src/multiarray/descriptor.c +++ b/numpy/core/src/multiarray/descriptor.c @@ -597,9 +597,7 @@ _convert_from_array_descr(PyObject *obj, int align) PyArray_Descr *new = PyArray_DescrNewFromType(NPY_VOID); if (new == NULL) { - Py_XDECREF(fields); - Py_XDECREF(nameslist); - return NULL; + goto fail; } new->fields = fields; new->names = nameslist; @@ -703,6 +701,9 @@ _convert_from_list(PyObject *obj, int align) totalsize += conv->elsize; } PyArray_Descr *new = PyArray_DescrNewFromType(NPY_VOID); + if (new == NULL) { + goto fail; + } new->fields = fields; new->names = nameslist; new->flags = dtypeflags; diff --git a/numpy/core/src/multiarray/methods.c b/numpy/core/src/multiarray/methods.c index 20a70a37e..8fa9bf2ca 100644 --- a/numpy/core/src/multiarray/methods.c +++ b/numpy/core/src/multiarray/methods.c @@ -1396,6 +1396,10 @@ array_partition(PyArrayObject *self, return NULL; } newd = PyArray_DescrNew(saved); + if (newd == NULL) { + Py_DECREF(new_name); + return NULL; + } Py_DECREF(newd->names); newd->names = new_name; ((PyArrayObject_fields *)self)->descr = newd; |
