mmap: do all internal arithmetic with Py_ssize_t while being very careful about overflow
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index 648da3a..037c494 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -652,6 +652,16 @@
finally:
s.close()
+ 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), '')
+ self.assertRaises(ValueError, m.read_byte,)
+ self.assertRaises(ValueError, m.write_byte, 'b')
+ self.assertRaises(ValueError, m.write, 'abc')
+
class LargeMmapTests(unittest.TestCase):