Ma Lin <[email protected]> added the comment:
Some memos:
1, In liblzma, these missing bytes were copied inside `dict_repeat` function:
788 case SEQ_COPY:
789 // Repeat len bytes from distance of rep0.
790 if (unlikely(dict_repeat(&dict, rep0, &len))) {
See liblzma's source code (xz-5.2 branch):
https://git.tukaani.org/?p=xz.git;a=blob;f=src/liblzma/lzma/lzma_decoder.c
2, Above replies said xz's command line tools can extract the problematic files
successfully.
This is because xz checks `if (avail_out == 0)` first, then checks `if
(avail_in == 0)`
See `uncompress` function in this source code (xz-5.2 branch):
https://git.tukaani.org/?p=xz.git;a=blob;f=src/xzdec/xzdec.c;hb=refs/heads/v5.2
This check order just avoids the problem.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue21872>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com