The 'compressed' string can be about 9/8 the size of the decompressed
string, but we didn't allow enough memory in the fuzz target for that.
Then when it failed, we didn't check.
Credit to OSSFuzz.
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Jeremy Allison <jra@samba.org>
int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len)
{
- static uint8_t compressed[1024 * 1024] = {0};
+ static uint8_t compressed[1024 * 1280] = {0};
static uint8_t decompressed[1024 * 1024] = {0};
ssize_t compressed_size;
ssize_t decompressed_size;
compressed_size = lzxpress_compress(buf, len,
compressed, sizeof(compressed));
+ if (compressed_size < 0) {
+ abort();
+ }
decompressed_size = lzxpress_decompress(compressed, compressed_size,
decompressed, sizeof(decompressed));