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:
parent
563288ea70
commit
054ccd6d14
1 changed files with 9 additions and 0 deletions
|
@ -626,6 +626,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
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue