homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Fix base64-codec and bz2-codec incremental decoders
Type: behavior Stage: patch review
Components: Library (Lib) Versions: Python 3.6, Python 3.5, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: martin.panter
Priority: normal Keywords: patch

Created on 2016年08月19日 11:52 by martin.panter, last changed 2022年04月11日 14:58 by admin.

Files
File name Uploaded Description Edit
base64-decoder.patch martin.panter, 2016年08月19日 11:51 review
Messages (1)
msg273106 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016年08月19日 11:51
This is split off a large patch I posted at Issue 20132. My new patch here fixes the following two flaws.
1. There is special code in the bz2 decoder that returns an empty text str object at EOF, even though bz2-codec is a bytes-to-bytes codec:
>>> import codecs
>>> decoder = codecs.getincrementaldecoder("bz2")()
>>> decoder.decode(codecs.encode(b"data", "bz2"))
b'data'
>>> decoder.decode(b"", final=True) # Should return bytes object
''
2. The base64 decoder does not handle partial sets of four codes, because it treats each input chunk as a stand-alone base64 encoding:
>>> tuple(codecs.iterdecode((b"AA", b"AA\r\n"), "base64"))
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/usr/lib/python3.5/codecs.py", line 1039, in iterdecode
 output = decoder.decode(input)
 File "/usr/lib/python3.5/encodings/base64_codec.py", line 35, in decode
 return base64.decodebytes(input)
 File "/usr/lib/python3.5/base64.py", line 554, in decodebytes
 return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
History
Date User Action Args
2022年04月11日 14:58:35adminsetgithub: 71986
2016年08月19日 12:08:31martin.panterlinkissue20132 dependencies
2016年08月19日 11:52:00martin.pantercreate

AltStyle によって変換されたページ (->オリジナル) /