base64.decodestring('') should return '' instead of raising an

exception.  The bug fix for SF #430849 wasn't quite right.  This
closes SF bug #595671.  I'll backport this to Python 2.2.
This commit is contained in:
Barry Warsaw 2002-08-15 22:14:24 +00:00
parent 7ca993ed37
commit 0a51b58e6b
2 changed files with 3 additions and 11 deletions

View File

@ -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)

View File

@ -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;
}