8000 Merge pull request #5088 from juliantaylor/not-fix · numpy/numpy@a6b01cc · GitHub
[go: up one dir, main page]

Skip to content

Commit a6b01cc

Browse files
committed
Merge pull request #5088 from juliantaylor/not-fix
BUG: fix wrong error checks of PyBytes_AsStringAndSize
2 parents a2bfd3f + 5df6ac7 commit a6b01cc

File tree

8 files changed

+11
-10
lines changed

8 files changed

+11
-10
lines changed

numpy/core/src/multiarray/buffer.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,8 @@ _buffer_format_string(PyArray_Descr *descr, _tmp_string_t *str,
269269
#else
270270
tmp = name;
271271
#endif
272-
if (tmp == NULL || PyBytes_AsStringAndSize(tmp, &p, &len) < 0) {
272+
if (tmp == NULL || PyBytes_AsStringAndSize(tmp, &p, &len) == -1) {
273+
PyErr_Clear();
273274
PyErr_SetString(PyExc_ValueError, "invalid field name");
274275
return -1;
275276
}

numpy/core/src/multiarray/datetime.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1840,7 +1840,7 @@ convert_datetime_metadata_tuple_to_datetime_metadata(PyObject *tuple,
18401840
}
18411841
unit_str = tmp;
18421842
}
1843-
if (PyBytes_AsStringAndSize(unit_str, &basestr, &len) < 0) {
1843+
if (PyBytes_AsStringAndSize(unit_str, &basestr, &len) == -1) {
18441844
Py_DECREF(unit_str);
18451845
return -1;
18461846
}
@@ -1919,7 +1919,7 @@ convert_pyobject_to_datetime_metadata(PyObject *obj,
19191919
return -1;
19201920
}
19211921

1922-
if (PyBytes_AsStringAndSize(ascii, &str, &len) < 0) {
1922+
if (PyBytes_AsStringAndSize(ascii, &str, &len) == -1) {
19231923
Py_DECREF(ascii);
19241924
return -1;
19251925
}

numpy/core/src/multiarray/datetime_busday.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,7 @@ PyArray_BusDayRollConverter(PyObject *roll_in, NPY_BUSDAY_ROLL *roll)
850850
obj = obj_str;
851851
}
852852

853-
if (PyBytes_AsStringAndSize(obj, &str, &len) < 0) {
853+
if (PyBytes_AsStringAndSize(obj, &str, &len) == -1) {
854854
Py_DECREF(obj);
855855
return 0;
856856
}

numpy/core/src/multiarray/datetime_busdaycal.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PyArray_WeekMaskConverter(PyObject *weekmask_in, npy_bool *weekmask)
4848
Py_ssize_t len;
4949
int i;
5050

51-
if (PyBytes_AsStringAndSize(obj, &str, &len) < 0) {
51+
if (PyBytes_AsStringAndSize(obj, &str, &len) == -1) {
5252
Py_DECREF(obj);
5353
return 0;
5454
}

numpy/core/src/multiarray/datetime_strings.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1589,7 +1589,7 @@ array_datetime_as_string(PyObject *NPY_UNUSED(self), PyObject *args,
15891589
Py_INCREF(strobj);
15901590
}
15911591

1592-
if (PyBytes_AsStringAndSize(strobj, &str, &len) < 0) {
1592+
if (PyBytes_AsStringAndSize(strobj, &str, &len) == -1) {
15931593
Py_DECREF(strobj);
15941594
goto fail;
15951595
}
@@ -1637,7 +1637,7 @@ array_datetime_as_string(PyObject *NPY_UNUSED(self), PyObject *args,
16371637
char *str;
16381638
Py_ssize_t len;
16391639

1640-
if (PyBytes_AsStringAndSize(timezone_obj, &str, &len) < 0) {
1640+
if (PyBytes_AsStringAndSize(timezone_obj, &str, &len) == -1) {
16411641
goto fail;
16421642
}
16431643

numpy/core/src/multiarray/descriptor.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1323,7 +1323,7 @@ PyArray_DescrConverter(PyObject *obj, PyArray_Descr **at)
13231323
Py_ssize_t len = 0;
13241324

13251325
/* Check for a string typecode. */
1326-
if (PyBytes_AsStringAndSize(obj, &type, &len) < 0) {
1326+
if (PyBytes_AsStringAndSize(obj, &type, &len) == -1) {
13271327
goto error;
13281328
}
13291329

numpy/core/src/multiarray/methods.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1687,7 +1687,7 @@ array_setstate(PyArrayObject *self, PyObject *args)
16871687
return NULL;
16881688
}
16891689

1690-
if (PyBytes_AsStringAndSize(rawdata, &datastr, &len)) {
1690+
if (PyBytes_AsStringAndSize(rawdata, &datastr, &len) == -1) {
16911691
Py_DECREF(rawdata);
16921692
return NULL;
16931693
}

numpy/core/src/umath/ufunc_type_resolution.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2044,7 +2044,7 @@ type_tuple_type_resolver(PyUFuncObject *self,
20442044
type_tup = str_obj;
20452045
}
20462046

2047-
if (!PyBytes_AsStringAndSize(type_tup, &str, &length) < 0) {
2047+
if (PyBytes_AsStringAndSize(type_tup, &str, &length) == -1) {
20482048
Py_XDECREF(str_obj);
20492049
return -1;
20502050
}

0 commit comments

Comments
 (0)
0