diff options
-rw-r--r-- | numpy/core/src/multiarray/flagsobject.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/numpy/core/src/multiarray/flagsobject.c b/numpy/core/src/multiarray/flagsobject.c index 99bd7a55d..9d7faa2a1 100644 --- a/numpy/core/src/multiarray/flagsobject.c +++ b/numpy/core/src/multiarray/flagsobject.c @@ -369,9 +369,15 @@ arrayflags_getitem(PyArrayFlagsObject *self, PyObject *ind) if (PyUnicode_Check(ind)) { PyObject *tmp_str; tmp_str = PyUnicode_AsASCIIString(ind); + if (tmp_str == NULL) { + return NULL; + } key = PyBytes_AS_STRING(tmp_str); n = PyBytes_GET_SIZE(tmp_str); - if (n > 16) n = 16; + if (n > 16) { + Py_DECREF(tmp_str); + goto fail; + } memcpy(buf, key, n); Py_DECREF(tmp_str); key = buf; |