Visitar URL original
gh-92888: Fix memoryview bad `__index__` use after free by Fidget-Spinner · Pull Request #92946 · python/cpython · GitHub
Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add more tests by Serhiy
Co-Authored-By: Serhiy Storchaka <3659035+serhiy-storchaka@users.noreply.github.com>
  • Loading branch information
Fidget-Spinner and serhiy-storchaka committed May 23, 2022
commit c818990bec7eca524a8cc6d35b859fd54f8bc303
18 changes: 18 additions & 0 deletions Lib/test/test_memoryview.py
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,13 @@ def __bool__(self):
m = memoryview(bytearray(b'\xff'*size))
self.assertEqual(list(m[MyIndex():8]), [255] * 4)

Comment thread
Fidget-Spinner marked this conversation as resolved.
ba = None
m = memoryview(bytearray(b'\xff'*size)).cast('B', (64, 2))
self.assertEqual(m[MyIndex(), 0], 0)
Comment thread
Fidget-Spinner marked this conversation as resolved.
Outdated
ba = None
m = memoryview(bytearray(b'\xff'*size)).cast('B', (2, 64))
self.assertEqual(m[0, MyIndex()], 0)

ba = None
m = memoryview(bytearray(b'\xff'*size))
with self.assertRaisesRegex(ValueError, "operation forbidden"):
Expand All @@ -595,6 +602,17 @@ def __bool__(self):
m[MyIndex():8] = b'spam'
self.assertEqual(ba[:8], b'\0'*8)

Comment thread
Fidget-Spinner marked this conversation as resolved.
ba = None
m = memoryview(bytearray(b'\xff'*size)).cast('B', (64, 2))
with self.assertRaisesRegex(ValueError, "operation forbidden"):
m[MyIndex(), 0] = 42
self.assertEqual(ba[8:16], b'\0'*8)
ba = None
m = memoryview(bytearray(b'\xff'*size)).cast('B', (2, 64))
with self.assertRaisesRegex(ValueError, "operation forbidden"):
m[0, MyIndex()] = 42
self.assertEqual(ba[:8], b'\0'*8)

ba = None
m = memoryview(bytearray(b'\xff'*size))
with self.assertRaisesRegex(ValueError, "operation forbidden"):
Expand Down