mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
Issue #1733986: Fixed mmap crash in accessing elements of second map object
with same tagname but larger size than first map. (Windows)
This commit is contained in:
parent
f2dc885780
commit
b0e10c760c
3 changed files with 32 additions and 1 deletions
|
|
@ -499,6 +499,34 @@ class MmapTests(unittest.TestCase):
|
|||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue