Ensure deserialized numpy arrays are immutable (#7181)

* ensure numpy arrays are immutable when deserialized from the memory buffer
This commit is contained in:
Siyuan (Ryans) Zhuang
2020-02-19 23:30:10 -08:00
committed by GitHub
parent 7e3819a27a
commit 0d210a99c3
3 changed files with 27 additions and 5 deletions
+7 -1
View File
@@ -98,6 +98,10 @@ cdef class SubBuffer:
"""
return self.len
@property
def readonly(self):
return self.readonly
def tobytes(self):
"""
Return this buffer as a Python bytes object. Memory is copied.
@@ -212,7 +216,9 @@ cdef class Pickle5Writer:
cpython.PyBUF_FULL_RO)
buffer.set_length(view.len)
buffer.set_ndim(view.ndim)
buffer.set_readonly(view.readonly)
# It should be 'view.readonly'. But for the sake of shared memory,
# we have to make it immutable.
buffer.set_readonly(1)
buffer.set_itemsize(view.itemsize)
if view.format:
buffer.set_format(view.format)