mirror of https://github.com/python/cpython
Fix SF bug #1402308, segfault when using mmap(-1, ...)
This didn't crash on Linux, but valgrind complained. I'm not sure if this test is valid on Windows. Will backport.
This commit is contained in:
parent
ae1df41127
commit
3b4fff8079
|
@ -31,6 +31,7 @@ test_mmap
|
|||
Modifying copy-on-write memory map.
|
||||
Ensuring copy-on-write maps cannot be resized.
|
||||
Ensuring invalid access parameter raises exception.
|
||||
Try opening a bad file descriptor...
|
||||
Ensuring that passing 0 as map length sets map size to current file size.
|
||||
Ensuring that passing 0 as map length sets map size to current file size.
|
||||
Test passed
|
||||
|
|
|
@ -281,6 +281,14 @@ def test_both():
|
|||
except OSError:
|
||||
pass
|
||||
|
||||
print ' Try opening a bad file descriptor...'
|
||||
try:
|
||||
mmap.mmap(-1, 4096)
|
||||
except mmap.error:
|
||||
pass
|
||||
else:
|
||||
verify(0, 'expected a mmap.error but did not get it')
|
||||
|
||||
# Do a tougher .find() test. SF bug 515943 pointed out that, in 2.2,
|
||||
# searching for data with embedded \0 bytes didn't work.
|
||||
f = open(TESTFN, 'w+')
|
||||
|
|
|
@ -529,6 +529,7 @@ Michael Scharf
|
|||
Neil Schemenauer
|
||||
David Scherer
|
||||
Gregor Schmid
|
||||
Ralf Schmitt
|
||||
Peter Schneider-Kamp
|
||||
Sam Schulenburg
|
||||
Stefan Schwarzer
|
||||
|
|
|
@ -216,6 +216,8 @@ Core and builtins
|
|||
Extension Modules
|
||||
-----------------
|
||||
|
||||
- Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
|
||||
|
||||
- Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
|
||||
Also fix ungetmouse() which did not accept arguments properly.
|
||||
The code now conforms to the documented signature.
|
||||
|
|
|
@ -918,6 +918,7 @@ new_mmap_object(PyObject *self, PyObject *args, PyObject *kwdict)
|
|||
#endif
|
||||
m_obj = PyObject_New (mmap_object, &mmap_object_type);
|
||||
if (m_obj == NULL) {return NULL;}
|
||||
m_obj->data = NULL;
|
||||
m_obj->size = (size_t) map_size;
|
||||
m_obj->pos = (size_t) 0;
|
||||
m_obj->fd = dup(fd);
|
||||
|
|
Loading…
Reference in New Issue