Skip to content

Commit a8d8408

Browse files
sebergcharris
authored andcommitted
MAINT: Further small return value validation fixes
1 parent da47aa2 commit a8d8408

5 files changed

Lines changed: 14 additions & 6 deletions

File tree

‎numpy/core/src/multiarray/buffer.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ _descriptor_from_pep3118_format_fast(char const *s, PyObject **result)
10571057
else {
10581058
*result = (PyObject*)PyArray_DescrNewByteorder(descr, byte_order);
10591059
Py_DECREF(descr);
1060-
if (result == NULL) {
1060+
if (*result == NULL) {
10611061
return 0;
10621062
}
10631063
}

‎numpy/core/src/multiarray/ctors.c‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,6 +1881,9 @@ PyArray_CheckFromAny(PyObject *op, PyArray_Descr *descr, int min_depth,
18811881
if (!descr && PyArray_Check(op) &&
18821882
PyArray_ISBYTESWAPPED((PyArrayObject* )op)) {
18831883
descr = PyArray_DescrNew(PyArray_DESCR((PyArrayObject *)op));
1884+
if (descr == NULL) {
1885+
return NULL;
1886+
}
18841887
}
18851888
else if (descr && !PyArray_ISNBO(descr->byteorder)) {
18861889
PyArray_DESCR_REPLACE(descr);

‎numpy/core/src/multiarray/descriptor.c‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -597,9 +597,7 @@ _convert_from_array_descr(PyObject *obj, int align)
597597

598598
PyArray_Descr *new = PyArray_DescrNewFromType(NPY_VOID);
599599
if (new == NULL) {
600-
Py_XDECREF(fields);
601-
Py_XDECREF(nameslist);
602-
return NULL;
600+
goto fail;
603601
}
604602
new->fields = fields;
605603
new->names = nameslist;
@@ -703,6 +701,9 @@ _convert_from_list(PyObject *obj, int align)
703701
totalsize += conv->elsize;
704702
}
705703
PyArray_Descr *new = PyArray_DescrNewFromType(NPY_VOID);
704+
if (new == NULL) {
705+
goto fail;
706+
}
706707
new->fields = fields;
707708
new->names = nameslist;
708709
new->flags = dtypeflags;

‎numpy/core/src/multiarray/methods.c‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,10 @@ array_partition(PyArrayObject *self,
13961396
return NULL;
13971397
}
13981398
newd = PyArray_DescrNew(saved);
1399+
if (newd == NULL) {
1400+
Py_DECREF(new_name);
1401+
return NULL;
1402+
}
13991403
Py_DECREF(newd->names);
14001404
newd->names = new_name;
14011405
((PyArrayObject_fields *)self)->descr = newd;

‎tools/swig/pyfragments.swg‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
}
5353
%#endif
5454
if (!PyArray_IsScalar(obj,Integer)) return SWIG_TypeError;
55-
PyArray_Descr * longDescr = PyArray_DescrNewFromType(NPY_LONG);
55+
PyArray_Descr * longDescr = PyArray_DescrFromType(NPY_LONG);
5656
PyArray_CastScalarToCtype(obj, (void*)val, longDescr);
5757
Py_DECREF(longDescr);
5858
return SWIG_OK;
@@ -102,7 +102,7 @@
102102
}
103103
%#endif
104104
if (!PyArray_IsScalar(obj,Integer)) return SWIG_TypeError;
105-
PyArray_Descr * ulongDescr = PyArray_DescrNewFromType(NPY_ULONG);
105+
PyArray_Descr * ulongDescr = PyArray_DescrFromType(NPY_ULONG);
106106
PyArray_CastScalarToCtype(obj, (void*)val, ulongDescr);
107107
Py_DECREF(ulongDescr);
108108
return SWIG_OK;

0 commit comments

Comments
 (0)