diff options
-rw-r--r-- | Lib/test/test_base64.py | 7 | ||||
-rw-r--r-- | Modules/binascii.c | 7 |
2 files changed, 3 insertions, 11 deletions
diff --git a/Lib/test/test_base64.py b/Lib/test/test_base64.py index 223c388..42e3c81 100644 --- a/Lib/test/test_base64.py +++ b/Lib/test/test_base64.py @@ -44,12 +44,7 @@ class Base64TestCase(unittest.TestCase): "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n") == "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}", reason = "long decodestring failed") - try: - base64.decodestring("") - except binascii_error: - pass - else: - self.fail("expected a binascii.Error on null decode request") + test_support.verify(base64.decodestring('') == '') def test_main(): test_support.run_unittest(Base64TestCase) diff --git a/Modules/binascii.c b/Modules/binascii.c index 0fe85fc..c56d528 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -346,10 +346,6 @@ binascii_a2b_base64(PyObject *self, PyObject *args) if ( !PyArg_ParseTuple(args, "t#:a2b_base64", &ascii_data, &ascii_len) ) return NULL; - if ( ascii_len == 0) { - PyErr_SetString(Error, "Cannot decode empty input"); - return NULL; - } bin_len = ((ascii_len+3)/4)*3; /* Upper bound, corrected later */ /* Allocate the buffer */ @@ -413,7 +409,8 @@ binascii_a2b_base64(PyObject *self, PyObject *args) } /* and set string size correctly */ - _PyString_Resize(&rv, bin_len); + if (bin_len > 0) + _PyString_Resize(&rv, bin_len); return rv; } |