summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2016-10-06 04:45:48 (GMT)
committerBenjamin Peterson <benjamin@python.org>2016-10-06 04:45:48 (GMT)
commitcd04db03debaead0abd1bff149389445284f88e2 (patch)
tree98fad3f687343fb125e7f0fef3dd57cf36df6265 /Lib/test
parent92e7c7f99c51419e1b4aa5eaaa22b7aeb6154ffd (diff)
downloadcpython-cd04db03debaead0abd1bff149389445284f88e2.zip
cpython-cd04db03debaead0abd1bff149389445284f88e2.tar.gz
cpython-cd04db03debaead0abd1bff149389445284f88e2.tar.bz2
mmap: do all internal arithmetic with Py_ssize_t while being very careful about overflow
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_mmap.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index b365d84..f8de8c2 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -713,6 +713,17 @@ class MmapTests(unittest.TestCase):
gc_collect()
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):
def setUp(self):