]> granicus.if.org Git - python/commitdiff
Fix core dump in an endcase of b.strip() that I missed.
authorGuido van Rossum <guido@python.org>
Wed, 8 Aug 2007 21:55:33 +0000 (21:55 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 8 Aug 2007 21:55:33 +0000 (21:55 +0000)
Lib/test/test_bytes.py
Objects/bytesobject.c

index 094c56cb3c6a44871b00442a7cf04d2085b8f400..654cb863f9f50a9b8d90b663742165776bf8bbab 100644 (file)
@@ -653,6 +653,7 @@ class BytesTest(unittest.TestCase):
         self.assertEqual(b.strip(b'pi'), b'mississ')
         self.assertEqual(b.strip(b'im'), b'ssissipp')
         self.assertEqual(b.strip(b'pim'), b'ssiss')
+        self.assertEqual(b.strip(b), b'')
 
     def test_lstrip(self):
         b = b'mississippi'
index 47ee8a4082ff9555c9e38872b4004246e820fed8..b409a2897894ad18a886cb0d6b601d4738809918 100644 (file)
@@ -2502,7 +2502,10 @@ bytes_strip(PyBytesObject *self, PyObject *arg)
     argptr = ((PyBytesObject *)arg)->ob_bytes;
     argsize = Py_Size(arg);
     left = lstrip_helper(myptr, mysize, argptr, argsize);
-    right = rstrip_helper(myptr, mysize, argptr, argsize);
+    if (left == mysize)
+        right = left;
+    else
+        right = rstrip_helper(myptr, mysize, argptr, argsize);
     return PyBytes_FromStringAndSize(self->ob_bytes + left, right - left);
 }