aboutsummaryrefslogtreecommitdiff
path: root/tests/Makefile.am
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2012-05-28 20:42:11 +0300
committerLasse Collin <lasse.collin@tukaani.org>2012-05-28 20:42:11 +0300
commitd8db706acb8316f9861abd432cfbe001dd6d0c5c (patch)
tree478ca7ab291be8779d549e2b89ff4c1d6dd7eb25 /tests/Makefile.am
parentUpdate THANKS. (diff)
downloadxz-d8db706acb8316f9861abd432cfbe001dd6d0c5c.tar.xz
liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.
lzma_code() could incorrectly return LZMA_BUF_ERROR if all of the following was true: - The caller knows how many bytes of output to expect and only provides that much output space. - When the last output bytes are decoded, the caller-provided input buffer ends right before the LZMA2 end of payload marker. So LZMA2 won't provide more output anymore, but it won't know it yet and thus won't return LZMA_STREAM_END yet. - A BCJ filter is in use and it hasn't left any unfiltered bytes in the temp buffer. This can happen with any BCJ filter, but in practice it's more likely with filters other than the x86 BCJ. Another situation where the bug can be triggered happens if the uncompressed size is zero bytes and no output space is provided. In this case the decompression can fail even if the whole input file is given to lzma_code(). A similar bug was fixed in XZ Embedded on 2011-09-19.
Diffstat (limited to 'tests/Makefile.am')
-rw-r--r--tests/Makefile.am4
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 03bf34c2..c4e17ed1 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -34,7 +34,8 @@ check_PROGRAMS = \
test_stream_flags \
test_filter_flags \
test_block_header \
- test_index
+ test_index \
+ test_bcj_exact_size
TESTS = \
test_check \
@@ -42,6 +43,7 @@ TESTS = \
test_filter_flags \
test_block_header \
test_index \
+ test_bcj_exact_size \
test_files.sh \
test_compress.sh