[Python-checkins] r67977 - in python/branches/release26-maint: Lib/test/test_bytes.py Misc/NEWS Objects/bytearrayobject.c
georg.brandl
python-checkins at python.org
Sun Dec 28 12:55:24 CET 2008
Author: georg.brandl
Date: Sun Dec 28 12:55:24 2008
New Revision: 67977
Log:
Backport r67975: #4759: fix segfault in bytearray.translate(x, None).
Modified:
python/branches/release26-maint/Lib/test/test_bytes.py
python/branches/release26-maint/Misc/NEWS
python/branches/release26-maint/Objects/bytearrayobject.c
Modified: python/branches/release26-maint/Lib/test/test_bytes.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_bytes.py (original)
+++ python/branches/release26-maint/Lib/test/test_bytes.py Sun Dec 28 12:55:24 2008
@@ -872,11 +872,19 @@
def test_translate(self):
b = b'hello'
+ ba = bytearray(b)
rosetta = bytearray(range(0, 256))
rosetta[ord('o')] = ord('e')
c = b.translate(rosetta, b'l')
self.assertEqual(b, b'hello')
self.assertEqual(c, b'hee')
+ c = ba.translate(rosetta, b'l')
+ self.assertEqual(ba, b'hello')
+ self.assertEqual(c, b'hee')
+ c = b.translate(None, b'e')
+ self.assertEqual(c, b'hllo')
+ self.assertRaises(TypeError, b.translate, b'a'*256, None)
+ self.assertRaises(TypeError, ba.translate, b'a'*256, None)
def test_split_bytearray(self):
self.assertEqual(b'a b'.split(memoryview(b' ')), [b'a', b'b'])
Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS (original)
+++ python/branches/release26-maint/Misc/NEWS Sun Dec 28 12:55:24 2008
@@ -12,6 +12,8 @@
Core and Builtins
-----------------
+- Issue #4759: fix a segfault for bytearray.translate(x, None).
+
- Added test case to ensure attempts to read from a file opened for writing
fail.
Modified: python/branches/release26-maint/Objects/bytearrayobject.c
==============================================================================
--- python/branches/release26-maint/Objects/bytearrayobject.c (original)
+++ python/branches/release26-maint/Objects/bytearrayobject.c Sun Dec 28 12:55:24 2008
@@ -1465,6 +1465,7 @@
if (delobj != NULL) {
if (_getbuffer(delobj, &vdel) < 0) {
result = NULL;
+ delobj = NULL; /* don't try to release vdel buffer on exit */
goto done;
}
}
More information about the Python-checkins
mailing list