1
0
Fork 0
mirror of https://git.tukaani.org/xz.git synced 2024-04-04 12:36:23 +02:00

xz: Fix --single-stream with an empty .xz Stream.

Example:

    $ xz -dc --single-stream good-0-empty.xz
    xz: good-0-empty.xz: Internal error (bug)

The code, that is tries to catch some input file issues early,
didn't anticipate LZMA_STREAM_END which is possible in that
code only when --single-stream is used.
This commit is contained in:
Lasse Collin 2022-10-25 23:09:11 +03:00
parent a3e4606134
commit 01744b280c

View file

@ -557,6 +557,15 @@ coder_init(file_pair *pair)
== LZMA_UNSUPPORTED_CHECK) == LZMA_UNSUPPORTED_CHECK)
message_warning("%s: %s", pair->src_name, message_warning("%s: %s", pair->src_name,
message_strm(ret)); message_strm(ret));
// With --single-stream lzma_code won't wait for
// LZMA_FINISH and thus it can return LZMA_STREAM_END
// if the file has no uncompressed data inside.
// So treat LZMA_STREAM_END as LZMA_OK here.
// When lzma_code() is called again in coder_normal()
// it will return LZMA_STREAM_END again.
if (ret == LZMA_STREAM_END)
ret = LZMA_OK;
} }
#endif #endif
} }