summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2022-02-03 11:36:55 -0600
committerCharles Harris <charlesr.harris@gmail.com>2022-02-03 11:45:05 -0700
commita8d8408e45f0bfd470a0465e8dd14c1fc2f90f2e (patch)
tree0d8f4b92ee4f7fa18ca8b17cd27212e1b313d6b5 /numpy
parentda47aa2c3d1df2d7c3fbab8eca1a36b242befb60 (diff)
downloadnumpy-a8d8408e45f0bfd470a0465e8dd14c1fc2f90f2e.tar.gz
MAINT: Further small return value validation fixes
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/multiarray/buffer.c2
-rw-r--r--numpy/core/src/multiarray/ctors.c3
-rw-r--r--numpy/core/src/multiarray/descriptor.c7
-rw-r--r--numpy/core/src/multiarray/methods.c4
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;