aboutsummaryrefslogtreecommitdiff
path: root/tests/ossfuzz/fuzz_decode_stream.c
diff options
context:
space:
mode:
authorJia Tan <jiat0218@gmail.com>2023-12-06 18:30:25 +0800
committerJia Tan <jiat0218@gmail.com>2023-12-07 20:06:57 +0800
commitee2f48350099201694a7586e41d7aa2f09fc74da (patch)
tree35ce97c6b55eeda46cb843195c176a400f6b63a5 /tests/ossfuzz/fuzz_decode_stream.c
parentTests: Add fuzz_encode_stream ossfuzz target. (diff)
downloadxz-ee2f48350099201694a7586e41d7aa2f09fc74da.tar.xz
Tests: Minor cleanups to OSS-Fuzz files.
Most of these fixes are small typos and tweaks. A few were caused by bad advice from me. Here is the summary of what is changed: - Author line edits - Small comment changes/additions - Using the return value in the error messages in the fuzz targets' coder initialization code - Removed fuzz_encode_stream.options. This set a max length, which may prevent some worthwhile code paths from being properly exercised. - Removed the max_len option from fuzz_decode_stream.options for the same reason as fuzz_encode_stream. The alone decoder fuzz target still has this restriction. - Altered the dictionary contents for fuzz_lzma.dict. Instead of keeping the properties static and varying the dictionary size, the properties are varied and the dictionary size is kept small. The dictionary size doesn't have much impact on the code paths but the properties do. Closes: https://github.com/tukaani-project/xz/pull/73
Diffstat (limited to '')
-rw-r--r--tests/ossfuzz/fuzz_decode_stream.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/tests/ossfuzz/fuzz_decode_stream.c b/tests/ossfuzz/fuzz_decode_stream.c
index 1da8ecb3..e06613e3 100644
--- a/tests/ossfuzz/fuzz_decode_stream.c
+++ b/tests/ossfuzz/fuzz_decode_stream.c
@@ -1,10 +1,10 @@
///////////////////////////////////////////////////////////////////////////////
//
/// \file fuzz_decode_stream.c
-/// \brief Fuzz test program for liblzma
-//
-// Author: Lasse Collin
+/// \brief Fuzz test program for single threaded .xz decoding
//
+// Authors: Lasse Collin
+// Maksym Vatsyk
//
// This file has been put into the public domain.
// You can do whatever you want with this file.
@@ -22,7 +22,7 @@ extern int
LLVMFuzzerTestOneInput(const uint8_t *inbuf, size_t inbuf_size)
{
lzma_stream strm = LZMA_STREAM_INIT;
- // Initialize a LZMA alone decoder using the memory usage limit
+ // Initialize a LZMA decoder using the memory usage limit
// defined in fuzz_common.h
//
// Enable support for concatenated .xz files which is used when
@@ -34,13 +34,14 @@ LLVMFuzzerTestOneInput(const uint8_t *inbuf, size_t inbuf_size)
// The flag LZMA_IGNORE_CHECK doesn't disable verification of
// header CRC32 values. Those checks are disabled when liblzma is
// built with the #define FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION.
+ lzma_ret ret = lzma_stream_decoder(&strm, MEM_LIMIT,
+ LZMA_CONCATENATED | LZMA_IGNORE_CHECK);
- if (lzma_stream_decoder(&strm, MEM_LIMIT,
- LZMA_CONCATENATED | LZMA_IGNORE_CHECK) != LZMA_OK) {
+ if (ret != LZMA_OK) {
// This should never happen unless the system has
// no free memory or address space to allow the small
// allocations that the initialization requires.
- fprintf(stderr, "lzma_stream_decoder() failed\n");
+ fprintf(stderr, "lzma_stream_decoder() failed (%d)\n", ret);
abort();
}