Commit 6e2acd6b authored by Benjamin Peterson's avatar Benjamin Peterson

mmap: do all internal arithmetic with Py_ssize_t while being very careful about overflow

parent 91009040
...@@ -713,6 +713,17 @@ class MmapTests(unittest.TestCase): ...@@ -713,6 +713,17 @@ class MmapTests(unittest.TestCase):
gc_collect() gc_collect()
self.assertIs(wr(), None) self.assertIs(wr(), None)
def test_resize_past_pos(self):
m = mmap.mmap(-1, 8192)
self.addCleanup(m.close)
m.read(5000)
m.resize(4096)
self.assertEqual(m.read(14), b'')
self.assertRaises(ValueError, m.read_byte,)
self.assertRaises(ValueError, m.write_byte, 42)
self.assertRaises(ValueError, m.write, b'abc')
class LargeMmapTests(unittest.TestCase): class LargeMmapTests(unittest.TestCase):
def setUp(self): def setUp(self):
......
...@@ -94,6 +94,9 @@ Library ...@@ -94,6 +94,9 @@ Library
- Issue #28322: Fixed possible crashes when unpickle itertools objects from - Issue #28322: Fixed possible crashes when unpickle itertools objects from
incorrect pickle data. Based on patch by John Leitch. incorrect pickle data. Based on patch by John Leitch.
- Fix possible integer overflows and crashes in the mmap module with unusual
usage patterns.
- Issue #1703178: Fix the ability to pass the --link-objects option to the - Issue #1703178: Fix the ability to pass the --link-objects option to the
distutils build_ext command. distutils build_ext command.
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment