mirror of
https://github.com/python/cpython.git
synced 2025-10-08 08:01:55 +00:00
Issue #10451: memoryview objects could allow to mutate a readable buffer.
Initial patch by Ross Lagerwall.
This commit is contained in:
parent
c8a16867f6
commit
ad62b03949
4 changed files with 18 additions and 4 deletions
|
@ -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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue