diff options
author | Pauli Virtanen <pav@iki.fi> | 2009-12-06 13:48:05 +0000 |
---|---|---|
committer | Pauli Virtanen <pav@iki.fi> | 2009-12-06 13:48:05 +0000 |
commit | abf9510babf61fb5babdc6c5955b9fa7c699a95e (patch) | |
tree | a703a46d825d195ff6af39b4d690b590b481a76a | |
parent | 3033a149c7211936594e936b9cccea49775f55a5 (diff) | |
download | numpy-abf9510babf61fb5babdc6c5955b9fa7c699a95e.tar.gz |
3K: more careful error checking in flagsobject.c:arrayflags_getitem for Unicode input
-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; |