From e6eb0a26757e851cef62b9440319a8e73b015cb9 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 14 Mar 2008 23:16:11 +0200 Subject: Fix data corruption in LZMA encoder. Note that this bug was specific to liblzma and was *not* present in LZMA SDK. --- src/liblzma/lzma/lzma_encoder.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/liblzma/lzma') diff --git a/src/liblzma/lzma/lzma_encoder.c b/src/liblzma/lzma/lzma_encoder.c index 0fcb755c..01c823ca 100644 --- a/src/liblzma/lzma/lzma_encoder.c +++ b/src/liblzma/lzma/lzma_encoder.c @@ -157,6 +157,10 @@ lzma_lzma_encode(lzma_coder *coder, uint8_t *restrict out, // Initialize the stream if no data has been encoded yet. if (!coder->is_initialized) { if (coder->lz.read_pos == coder->lz.read_limit) { + if (coder->lz.sequence == SEQ_RUN) + return false; // We cannot do anything. + + // We are finishing (we cannot get here when flushing). assert(coder->lz.write_pos == coder->lz.read_pos); assert(coder->lz.sequence == SEQ_FINISH); } else { -- cgit v1.2.3