Commit 7adfad85 authored by Christian Heimes's avatar Christian Heimes

Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ

Thanks to Thomas Herve for the fix.
parent 2f0da53d
......@@ -426,6 +426,13 @@ class MmapTests(unittest.TestCase):
return mmap.mmap.__new__(klass, -1, *args, **kwargs)
anon_mmap(PAGESIZE)
def test_prot_readonly(self):
mapsize = 10
open(TESTFN, "wb").write("a"*mapsize)
f = open(TESTFN, "rb")
m = mmap.mmap(f.fileno(), mapsize, prot=mmap.PROT_READ)
self.assertRaises(TypeError, m.write, "foo")
def test_main():
run_unittest(MmapTests)
......
......@@ -1142,6 +1142,8 @@ Library
Extension Modules
-----------------
- Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ
- #2063: correct order of utime and stime in os.times() result on Windows.
- Patch #1736: Fix file name handling of _msi.FCICreate.
......
......@@ -1122,6 +1122,10 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
"mmap invalid access parameter.");
}
if (prot == PROT_READ) {
access = ACCESS_READ;
}
#ifdef HAVE_FSTAT
# ifdef __VMS
/* on OpenVMS we must ensure that all bytes are written to the file */
......
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