diff options
author | Stefan Krah <skrah@bytereef.org> | 2012-11-02 16:55:11 (GMT) |
---|---|---|
committer | Stefan Krah <skrah@bytereef.org> | 2012-11-02 16:55:11 (GMT) |
commit | c38c816ea16b37cdc07970474c2a477f216c27ce (patch) | |
tree | f7393ceaab15635326b67ce722943ab84848c61e /Objects | |
parent | 43c336b1078f531f444681f4cbe1a0db2b85a6d9 (diff) | |
parent | 4af77a027680f2aa956a4d1c50947d6e2dbd0185 (diff) | |
download | cpython-c38c816ea16b37cdc07970474c2a477f216c27ce.zip cpython-c38c816ea16b37cdc07970474c2a477f216c27ce.tar.gz cpython-c38c816ea16b37cdc07970474c2a477f216c27ce.tar.bz2 |
Merge 3.3.
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/memoryobject.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c index d56faf8..dd6fe82 100644 --- a/Objects/memoryobject.c +++ b/Objects/memoryobject.c @@ -2707,6 +2707,8 @@ memory_hash(PyMemoryViewObject *self) if (self->hash == -1) { Py_buffer *view = &self->view; char *mem = view->buf; + Py_ssize_t ret; + char fmt; CHECK_RELEASED_INT(self); @@ -2715,6 +2717,12 @@ memory_hash(PyMemoryViewObject *self) "cannot hash writable memoryview object"); return -1; } + ret = get_native_fmtchar(&fmt, view->format); + if (ret < 0 || !IS_BYTE_FORMAT(fmt)) { + PyErr_SetString(PyExc_ValueError, + "memoryview: hashing is restricted to formats 'B', 'b' or 'c'"); + return -1; + } if (view->obj != NULL && PyObject_Hash(view->obj) == -1) { /* Keep the original error message */ return -1; |