Backport r67975: #4759: fix segfault in bytearray.translate(x, None).
This commit is contained in:
parent
828a7066f1
commit
ef29f8634c
|
@ -872,11 +872,19 @@ class AssortedBytesTest(unittest.TestCase):
|
|||
|
||||
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'])
|
||||
|
|
|
@ -12,6 +12,8 @@ What's New in Python 2.6.2
|
|||
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.
|
||||
|
||||
|
|
|
@ -1465,6 +1465,7 @@ bytes_translate(PyByteArrayObject *self, PyObject *args)
|
|||
if (delobj != NULL) {
|
||||
if (_getbuffer(delobj, &vdel) < 0) {
|
||||
result = NULL;
|
||||
delobj = NULL; /* don't try to release vdel buffer on exit */
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue