summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2009-12-06 13:48:05 +0000
committerPauli Virtanen <pav@iki.fi>2009-12-06 13:48:05 +0000
commitabf9510babf61fb5babdc6c5955b9fa7c699a95e (patch)
treea703a46d825d195ff6af39b4d690b590b481a76a
parent3033a149c7211936594e936b9cccea49775f55a5 (diff)
downloadnumpy-abf9510babf61fb5babdc6c5955b9fa7c699a95e.tar.gz
3K: more careful error checking in flagsobject.c:arrayflags_getitem for Unicode input
-rw-r--r--numpy/core/src/multiarray/flagsobject.c8
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;