summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_mmap.py
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2011-03-06 01:03:34 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2011-03-06 01:03:34 (GMT)
commitd6f3a3e3a820d05b6ad1b6689db185152bab249d (patch)
tree72775eb3630141c31ac7ad07ee1c0744b03c386f /Lib/test/test_mmap.py
parent414596ae8d97cc7ca075acde85ba8bbab16ff89b (diff)
downloadcpython-d6f3a3e3a820d05b6ad1b6689db185152bab249d.zip
cpython-d6f3a3e3a820d05b6ad1b6689db185152bab249d.tar.gz
cpython-d6f3a3e3a820d05b6ad1b6689db185152bab249d.tar.bz2
Issue #11391: Writing to a mmap object created with
`mmap.PROT_READ|mmap.PROT_EXEC` would segfault instead of raising a TypeError. Patch by Charles-François Natali.
Diffstat (limited to 'Lib/test/test_mmap.py')
-rw-r--r--Lib/test/test_mmap.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index 047d700..bc99054 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -239,6 +239,14 @@ class MmapTests(unittest.TestCase):
prot=mmap.PROT_READ, access=mmap.ACCESS_WRITE)
f.close()
+ # Try writing with PROT_EXEC and without PROT_WRITE
+ prot = mmap.PROT_READ | getattr(mmap, 'PROT_EXEC', 0)
+ with open(TESTFN, "r+b") as f:
+ m = mmap.mmap(f.fileno(), mapsize, prot=prot)
+ self.assertRaises(TypeError, m.write, b"abcdef")
+ self.assertRaises(TypeError, m.write_byte, 0)
+ m.close()
+
def test_bad_file_desc(self):
# Try opening a bad file descriptor...
self.assertRaises(mmap.error, mmap.mmap, -2, 4096)