]> granicus.if.org Git - xz/commitdiff
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 edce90cdff595b90f78b9da7ee9fa0b33855b056..2f185e490d481349ce0be7d9e3c6d30c5da9aaee 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;