Issue 1171487: Patch for [ 1170331 ] Error in base64.b32decode (original) (raw)

Issue1171487

Created on 2005-03-27 19:46 by logistix, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
base32decode_fix.diff logistix,2005-03-27 21:43
Messages (3)
msg48062 - (view) Author: Grant Olson (logistix) Date: 2005-03-27 19:46
base64.b32decode didn't decode some things properly. Seems to have only impacted characters with a value < 32. Attached is a fix and a new test.
msg48063 - (view) Author: Grant Olson (logistix) Date: 2005-03-27 21:43
Logged In: YES user_id=699438 Updated patch to reflect another fix. I originally thought the bug was related to cleanup of a partial quanta. It will trigger on any quanta where the initial hex value is < 0x10. When this happens part of the hex code disappears in the initial conversion and is mistakenly swallowed. The hex function that was originally used doesn't zero-pad, but the way the bit shifting works, it doesn't need to when encoding normal alpha-numeric characters, so it seemed to work correctly. This will only cause problems if you are using a character value of < 0x10 in the 0th, 4th, 8th, 12th, etc positions in the encoded string. Otherwise it'll work properly. Using "%010x" ensures that you'll get the appropriate zero-padding if necessary. Example of more broken code not covered in the original bug: >>> base64.b32decode(base64.b32encode('\x00aaa')) 'aaa' Updated patch fixes this case as well.
msg48064 - (view) Author: A.M. Kuchling (akuchling) * (Python committer) Date: 2005-06-08 22:53
Logged In: YES user_id=11375 Applied; thanks! I also added a test case that would have caught the bug.
History
Date User Action Args
2022-04-11 14:56:10 admin set github: 41765
2005-03-27 19:46:17 logistix create