2023-05-19 00:01:34 +00:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2023, Tim Schumacher <timschumi@gmx.de>.
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <AK/MemoryStream.h>
|
|
|
|
#include <LibCompress/Lzma.h>
|
|
|
|
|
|
|
|
extern "C" int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
|
|
|
|
{
|
2023-11-03 17:49:54 +00:00
|
|
|
AK::set_debug_enabled(false);
|
|
|
|
|
2023-05-19 00:01:34 +00:00
|
|
|
AllocatingMemoryStream stream {};
|
|
|
|
|
|
|
|
auto compressor = MUST(Compress::LzmaCompressor::create_container(MaybeOwned<Stream> { stream }, {}));
|
|
|
|
MUST(compressor->write_until_depleted({ data, size }));
|
|
|
|
MUST(compressor->flush());
|
|
|
|
|
|
|
|
auto decompressor = MUST(Compress::LzmaDecompressor::create_from_container(MaybeOwned<Stream> { stream }));
|
|
|
|
auto result = MUST(decompressor->read_until_eof());
|
|
|
|
|
|
|
|
VERIFY((ReadonlyBytes { data, size }) == result.span());
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|