mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
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.
This commit is contained in:
parent
414596ae8d
commit
d6f3a3e3a8
3 changed files with 22 additions and 5 deletions
|
|
@ -1154,17 +1154,22 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
|
|||
prot = PROT_READ | PROT_WRITE;
|
||||
break;
|
||||
case ACCESS_DEFAULT:
|
||||
/* use the specified or default values of flags and prot */
|
||||
/* map prot to access type */
|
||||
if ((prot & PROT_READ) && (prot & PROT_WRITE)) {
|
||||
/* ACCESS_DEFAULT */
|
||||
}
|
||||
else if (prot & PROT_WRITE) {
|
||||
access = ACCESS_WRITE;
|
||||
}
|
||||
else {
|
||||
access = ACCESS_READ;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return PyErr_Format(PyExc_ValueError,
|
||||
"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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue