[Python-checkins] r70059 - in python/branches/release26-maint: Lib/test/test_mmap.py Misc/NEWS Modules/mmapmodule.c

hirokazu.yamamoto python-checkins at python.org
Sat Feb 28 13:42:17 CET 2009


Author: hirokazu.yamamoto
Date: Sat Feb 28 13:42:16 2009
New Revision: 70059
Log:
Merged revisions 70056 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk
........
 r70056 | hirokazu.yamamoto | 2009年02月28日 21:13:07 +0900 | 2 lines
 
 Issue #1733986: Fixed mmap crash in accessing elements of second map object
 with same tagname but larger size than first map. (Windows)
........
Modified:
 python/branches/release26-maint/ (props changed)
 python/branches/release26-maint/Lib/test/test_mmap.py
 python/branches/release26-maint/Misc/NEWS
 python/branches/release26-maint/Modules/mmapmodule.c
Modified: python/branches/release26-maint/Lib/test/test_mmap.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_mmap.py	(original)
+++ python/branches/release26-maint/Lib/test/test_mmap.py	Sat Feb 28 13:42:16 2009
@@ -499,6 +499,34 @@
 m.seek(8)
 self.assertRaises(ValueError, m.write, "bar")
 
+ if os.name == 'nt':
+ def test_tagname(self):
+ data1 = "0123456789"
+ data2 = "abcdefghij"
+ assert len(data1) == len(data2)
+ # Test same tag
+ m1 = mmap.mmap(-1, len(data1), tagname="foo")
+ m1[:] = data1
+ m2 = mmap.mmap(-1, len(data2), tagname="foo")
+ m2[:] = data2
+ self.assertEquals(m1[:], data2)
+ self.assertEquals(m2[:], data2)
+ # Test differnt tag
+ m1 = mmap.mmap(-1, len(data1), tagname="foo")
+ m1[:] = data1
+ m2 = mmap.mmap(-1, len(data2), tagname="boo")
+ m2[:] = data2
+ self.assertEquals(m1[:], data1)
+ self.assertEquals(m2[:], data2)
+
+ def test_tagname_crash(self):
+ # Should not crash (Issue 1733986)
+ m = mmap.mmap(-1, 1000, tagname="foo")
+ try:
+ mmap.mmap(-1, 5000, tagname="foo")[:] # same tagname, but larger size
+ except:
+ pass
+
 
 def test_main():
 run_unittest(MmapTests)
Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS	(original)
+++ python/branches/release26-maint/Misc/NEWS	Sat Feb 28 13:42:16 2009
@@ -89,6 +89,9 @@
 Library
 -------
 
+- Issue #1733986: Fixed mmap crash in accessing elements of second map object
+ with same tagname but larger size than first map. (Windows)
+
 - Issue #5386: mmap.write_byte didn't check map size, so it could cause buffer
 overrun.
 
Modified: python/branches/release26-maint/Modules/mmapmodule.c
==============================================================================
--- python/branches/release26-maint/Modules/mmapmodule.c	(original)
+++ python/branches/release26-maint/Modules/mmapmodule.c	Sat Feb 28 13:42:16 2009
@@ -1373,7 +1373,7 @@
 						 dwDesiredAccess,
 						 off_hi,
 						 off_lo,
-						 0);
+						 m_obj->size);
 		if (m_obj->data != NULL)
 			return (PyObject *)m_obj;
 		else


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /