Mercurial > cpython-lru_cache-weakref
diff Modules/_testbuffer.c @ 78720:fa745ed89b7a
Issue #15770: Check invalid arguments in test function. Patch by Victor Stinner.
| author | Stefan Krah <skrah@bytereef.org> |
|---|---|
| date | Thu, 23 Aug 2012 15:53:45 +0200 |
| parents | 8fbbc7c8748e |
| children | 7c007110d952 |
line wrap: on
line diff
--- a/Modules/_testbuffer.c Thu Aug 23 15:05:29 2012 +0200 +++ b/Modules/_testbuffer.c Thu Aug 23 15:53:45 2012 +0200 @@ -2362,6 +2362,13 @@ ord = PyBytes_AS_STRING(ascii_order)[0]; Py_DECREF(ascii_order); + + if (ord != 'C' && ord != 'F' && ord != 'A') { + PyErr_SetString(PyExc_ValueError, + "invalid order, must be C, F or A"); + return CHAR_MAX; + } + return ord; } @@ -2384,15 +2391,20 @@ "buffertype must be PyBUF_READ or PyBUF_WRITE"); return NULL; } + type = PyLong_AsLong(buffertype); if (type == -1 && PyErr_Occurred()) { return NULL; } + if (type != PyBUF_READ && type != PyBUF_WRITE) { + PyErr_SetString(PyExc_ValueError, + "invalid buffer type"); + return NULL; + } ord = get_ascii_order(order); - if (ord == CHAR_MAX) { + if (ord == CHAR_MAX) return NULL; - } return PyMemoryView_GetContiguous(obj, (int)type, ord); }
