summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--py/objarray.c4
-rw-r--r--tests/basics/memoryview1.py4
2 files changed, 8 insertions, 0 deletions
diff --git a/py/objarray.c b/py/objarray.c
index 1b590f3c05..a84a631519 100644
--- a/py/objarray.c
+++ b/py/objarray.c
@@ -418,6 +418,10 @@ STATIC mp_obj_t array_subscr(mp_obj_t self_in, mp_obj_t index_in, mp_obj_t value
uint8_t* dest_items = o->items;
#if MICROPY_PY_BUILTINS_MEMORYVIEW
if (o->base.type == &mp_type_memoryview) {
+ if ((o->typecode & 0x80) == 0) {
+ // store to read-only memoryview not allowed
+ return MP_OBJ_NULL;
+ }
if (len_adj != 0) {
goto compat_error;
}
diff --git a/tests/basics/memoryview1.py b/tests/basics/memoryview1.py
index 019a1179f8..a771acdda9 100644
--- a/tests/basics/memoryview1.py
+++ b/tests/basics/memoryview1.py
@@ -18,6 +18,10 @@ try:
m[0] = 1
except TypeError:
print("TypeError")
+try:
+ m[0:2] = b'00'
+except TypeError:
+ print("TypeError")
# test writing to bytearray
b = bytearray(b)