Patch #2111: Avoid mmap segfault when modifying a PROT_READ block.
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index d2a2477..2fe0211 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -380,6 +380,23 @@
finally:
os.unlink(TESTFN)
+ # Test that setting access to PROT_READ gives exception
+ # rather than crashing
+ if hasattr(mmap, "PROT_READ"):
+ try:
+ mapsize = 10
+ open(TESTFN, "wb").write("a"*mapsize)
+ f = open(TESTFN, "rb")
+ m = mmap.mmap(f.fileno(), mapsize, prot=mmap.PROT_READ)
+ try:
+ m.write("foo")
+ except TypeError:
+ pass
+ else:
+ verify(0, "PROT_READ is not working")
+ finally:
+ os.unlink(TESTFN)
+
def test_anon():
print " anonymous mmap.mmap(-1, PAGESIZE)..."
m = mmap.mmap(-1, PAGESIZE)