aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xz/coder.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/xz/coder.c b/src/xz/coder.c
index d58e7e39..0ab8e467 100644
--- a/src/xz/coder.c
+++ b/src/xz/coder.c
@@ -617,17 +617,19 @@ coder_run(const char *filename)
strm.next_in = in_buf.u8;
strm.avail_in = io_read(pair, &in_buf, IO_BUFFER_SIZE);
- switch (coder_init(pair)) {
- case CODER_INIT_NORMAL:
- success = coder_normal(pair);
- break;
+ if (strm.avail_in != SIZE_MAX) {
+ switch (coder_init(pair)) {
+ case CODER_INIT_NORMAL:
+ success = coder_normal(pair);
+ break;
- case CODER_INIT_PASSTHRU:
- success = coder_passthru(pair);
- break;
+ case CODER_INIT_PASSTHRU:
+ success = coder_passthru(pair);
+ break;
- case CODER_INIT_ERROR:
- break;
+ case CODER_INIT_ERROR:
+ break;
+ }
}
message_progress_end(success);