Issue #10451: memoryview objects could allow to mutate a readable buffer.

Initial patch by Ross Lagerwall.
This commit is contained in:
Antoine Pitrou 2011-01-18 18:57:52 +00:00
parent c8a16867f6
commit ad62b03949
4 changed files with 18 additions and 4 deletions

View file

@ -9,6 +9,7 @@ import sys
import gc
import weakref
import array
import io
class AbstractMemoryTests:
@ -271,6 +272,17 @@ class AbstractMemoryTests:
m.release()
self._check_released(m, tp)
def test_writable_readonly(self):
# Issue #10451: memoryview incorrectly exposes a readonly
# buffer as writable causing a segfault if using mmap
tp = self.ro_type
if tp is None:
return
b = tp(self._source)
m = self._view(b)
i = io.BytesIO(b'ZZZZ')
self.assertRaises(TypeError, i.readinto, m)
# Variations on source objects for the buffer: bytes-like objects, then arrays
# with itemsize > 1.
# NOTE: support for multi-dimensional objects is unimplemented.