From 06f967b820bd3e5e0fe53a099e91b724d0ec5b3e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 23 Feb 2025 04:59:46 +0900 Subject: [PATCH] fuzz: decompress_startswith() may return zero Fixes #36472. (cherry picked from commit 339f2f2eeb883b201f59076900e3bee7ff143460) (cherry picked from commit 5e00d957baea4731cd08508141e9d3c807011312) --- src/fuzz/fuzz-compress.c | 5 ++--- test/fuzz/.gitattributes | 1 + test/fuzz/fuzz-compress/issue-36472 | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 test/fuzz/fuzz-compress/issue-36472 diff --git a/src/fuzz/fuzz-compress.c b/src/fuzz/fuzz-compress.c index c3f68f62dd2..9aa90ae2a1b 100644 --- a/src/fuzz/fuzz-compress.c +++ b/src/fuzz/fuzz-compress.c @@ -5,6 +5,7 @@ #include "alloc-util.h" #include "compress.h" #include "fuzz.h" +#include "tests.h" typedef struct header { uint32_t alg:2; /* We have only three compression algorithms so far, but we might add more in the @@ -59,8 +60,6 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { size_t sw_len = MIN(data_len - 1, h->sw_len); - r = decompress_startswith(alg, buf, csize, &buf2, h->data, sw_len, h->data[sw_len]); - assert_se(r > 0); - + ASSERT_OK(decompress_startswith(alg, buf, csize, &buf2, h->data, sw_len, h->data[sw_len])); return 0; } diff --git a/test/fuzz/.gitattributes b/test/fuzz/.gitattributes index 02dea65580c..673c2e6fcc1 100644 --- a/test/fuzz/.gitattributes +++ b/test/fuzz/.gitattributes @@ -1,5 +1,6 @@ /*/* -whitespace /fuzz-bus-match/* binary +/fuzz-compress/* binary /fuzz-dhcp*/* binary /fuzz-dns-packet/* binary /fuzz-fido-id-desc/ binary diff --git a/test/fuzz/fuzz-compress/issue-36472 b/test/fuzz/fuzz-compress/issue-36472 new file mode 100644 index 00000000000..fca37d475f2 --- /dev/null +++ b/test/fuzz/fuzz-compress/issue-36472 @@ -0,0 +1 @@ +Þ0000000000Þ000000000000000000000