From 658717ed117c8002d084359a3ad2f88ca7df8c99 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Mon, 6 Sep 2004 22:58:37 +0000 Subject: SF #1022953: binascii.a2b_hqx("") raises SystemError Several functions adopted the strategy of altering a full lengthed string copy and resizing afterwards. That would fail if the initial string was short enough (0 or 1) to be interned. Interning precluded the subsequent resizing operation. The solution was to make sure the initial string was at least two characters long. Added tests to verify that all binascii functions do not crater when given an empty string argument. --- Lib/test/test_binascii.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'Lib/test/test_binascii.py') diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index b01f0e00c4..8df450456e 100755 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -148,6 +148,16 @@ class BinASCIITest(unittest.TestCase): "0"*75+"=\r\n=FF\r\n=FF\r\n=FF" ) + def test_empty_string(self): + # A test for SF bug #1022953. Make sure SystemError is not raised. + for n in ['b2a_qp', 'a2b_hex', 'b2a_base64', 'a2b_uu', 'a2b_qp', + 'b2a_hex', 'unhexlify', 'hexlify', 'crc32', 'b2a_hqx', + 'a2b_hqx', 'a2b_base64', 'rlecode_hqx', 'b2a_uu', + 'rledecode_hqx']: + f = getattr(binascii, n) + f('') + binascii.crc_hqx('', 0) + def test_main(): test_support.run_unittest(BinASCIITest) -- cgit v1.2.1