From: Lasse Collin Date: Sun, 1 Feb 2009 20:40:35 +0000 (+0200) Subject: Fix a bug in lzma_block_buffer_decode(), although this X-Git-Tag: v4.999.8beta~9 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8dd7b6052e18621e2e6c62f40f762ee88bd3eb65;p=xz Fix a bug in lzma_block_buffer_decode(), although this function should be rewritten anyway. --- diff --git a/src/liblzma/common/block_buffer_decoder.c b/src/liblzma/common/block_buffer_decoder.c index ec24e44b..9f95637c 100644 --- a/src/liblzma/common/block_buffer_decoder.c +++ b/src/liblzma/common/block_buffer_decoder.c @@ -50,10 +50,6 @@ lzma_block_buffer_decode(lzma_block *block, lzma_allocator *allocator, if (ret == LZMA_STREAM_END) { ret = LZMA_OK; } else { - // Something went wrong, restore the positions. - *in_pos = in_start; - *out_pos = out_start; - if (ret == LZMA_OK) { // Either the input was truncated or the // output buffer was too small. @@ -75,6 +71,10 @@ lzma_block_buffer_decode(lzma_block *block, lzma_allocator *allocator, else ret = LZMA_BUF_ERROR; } + + // Restore the positions. + *in_pos = in_start; + *out_pos = out_start; } }