Fix missing initialization in lzma_strm_init().
authorLasse Collin <lasse.collin@tukaani.org>
Sat, 6 Mar 2010 19:17:20 +0000 (21:17 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Sat, 6 Mar 2010 19:17:20 +0000 (21:17 +0200)
With bad luck, lzma_code() could return LZMA_BUF_ERROR
when it shouldn't.

This has been here since the early days of liblzma.
It got triggered by the modifications made to the xz
tool in commit 18c10c30d2833f394cd7bce0e6a821044b15832f
but only when decompressing .lzma files. Somehow I managed
to miss testing that with Valgrind earlier.

This fixes <http://bugs.gentoo.org/show_bug.cgi?id=305591>.
Thanks to Rafał Mużyło for helping to debug it on IRC.

src/liblzma/common/common.c

index edce90c..2f185e4 100644 (file)
@@ -161,6 +161,7 @@ lzma_strm_init(lzma_stream *strm)
        strm->internal->supported_actions[LZMA_FULL_FLUSH] = false;
        strm->internal->supported_actions[LZMA_FINISH] = false;
        strm->internal->sequence = ISEQ_RUN;
+       strm->internal->allow_buf_error = false;
 
        strm->total_in = 0;
        strm->total_out = 0;