From 905f0ab5b5ce544d4b68a2ed6077df0f3d021292 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Thu, 14 Jun 2012 10:33:01 +0300 Subject: [PATCH] Docs: Fix a bug in xz_pipe_decomp.c example program. --- doc/examples/xz_pipe_decomp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/examples/xz_pipe_decomp.c b/doc/examples/xz_pipe_decomp.c index d4b204d7..fb5ad895 100644 --- a/doc/examples/xz_pipe_decomp.c +++ b/doc/examples/xz_pipe_decomp.c @@ -1,7 +1,7 @@ /* * xz_pipe_decomp.c * A simple example of pipe-only xz decompressor implementation. - * version: 2010-07-12 - by Daniel Mealha Cabrita + * version: 2012-06-14 - by Daniel Mealha Cabrita * Not copyrighted -- provided to the public domain. * * Compiling: @@ -101,6 +101,14 @@ int xz_decompress (FILE *in_file, FILE *out_file) } while (strm.avail_out == 0); } + /* Bug fix (2012-06-14): If no errors were detected, check + that the last lzma_code() call returned LZMA_STREAM_END. + If not, the file is probably truncated. */ + if ((ret == RET_OK) && (ret_xz != LZMA_STREAM_END)) { + fprintf (stderr, "Input truncated or corrupt\n"); + ret = RET_ERROR_DECOMPRESSION; + } + lzma_end (&strm); return ret; }