Ma Lin <malin...@163.com> 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 <rep...@bugs.python.org> <https://bugs.python.org/issue21872> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com