]> granicus.if.org Git - python/commitdiff
Merged revisions 77506 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 15 Jan 2010 00:27:43 +0000 (00:27 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 15 Jan 2010 00:27:43 +0000 (00:27 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77506 | antoine.pitrou | 2010-01-15 01:18:00 +0100 (ven., 15 janv. 2010) | 4 lines

  Issue #7701: Fix crash in binascii.b2a_uu() in debug mode when given a
  1-byte argument.  Patch by Victor Stinner.
........

Lib/test/test_binascii.py
Misc/NEWS
Modules/binascii.c

index a631a6abbe057be12956a8224c011043048cd58a..cd76dbbc63743b64ee59ff5e1f7259276b986576 100755 (executable)
@@ -108,6 +108,9 @@ class BinASCIITest(unittest.TestCase):
 
         self.assertRaises(binascii.Error, binascii.b2a_uu, 46*b"!")
 
+        # Issue #7701 (crash on a pydebug build)
+        self.assertEqual(binascii.b2a_uu(b'x'), b'!>   \n')
+
     def test_crc32(self):
         crc = binascii.crc32(b"Test the CRC-32 of")
         crc = binascii.crc32(b" this string.", crc)
index f2e2fed6ca68d40f93b744c5c9bf2600e249abda..b2203064d6e12d5a56f87f37d4c9835f6fc012cf 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -213,6 +213,9 @@ C-API
 Library
 -------
 
+- Issue #7701: Fix crash in binascii.b2a_uu() in debug mode when given a
+  1-byte argument.  Patch by Victor Stinner.
+
 - Issue #3299: Fix possible crash in the _sre module when given bad
   argument values in debug mode.  Patch by Victor Stinner.
 
index 51101b412a5bbb797d6eef2bf2c960f495d5c7cb..833283f7c983c1fd05154e7d4fb2bc65d042c12f 100644 (file)
@@ -294,7 +294,7 @@ binascii_b2a_uu(PyObject *self, PyObject *args)
        }
 
        /* We're lazy and allocate to much (fixed up later) */
-       if ( (rv=PyBytes_FromStringAndSize(NULL, bin_len*2+2)) == NULL ) {
+       if ( (rv=PyBytes_FromStringAndSize(NULL, 2 + (bin_len+2)/3*4)) == NULL ) {
                PyBuffer_Release(&pbin);
                return NULL;
        }