diff --git a/Meta/Lagom/Fuzzers/FuzzJBIG2Loader.cpp b/Meta/Lagom/Fuzzers/FuzzJBIG2Loader.cpp new file mode 100644 index 0000000000..bd036564d8 --- /dev/null +++ b/Meta/Lagom/Fuzzers/FuzzJBIG2Loader.cpp @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +extern "C" int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size) +{ + AK::set_debug_enabled(false); + auto decoder_or_error = Gfx::JBIG2ImageDecoderPlugin::create({ data, size }); + if (decoder_or_error.is_error()) + return 0; + auto decoder = decoder_or_error.release_value(); + (void)decoder->frame(0); + return 0; +} diff --git a/Meta/Lagom/Fuzzers/fuzzers.cmake b/Meta/Lagom/Fuzzers/fuzzers.cmake index 30476feed0..66f025f339 100644 --- a/Meta/Lagom/Fuzzers/fuzzers.cmake +++ b/Meta/Lagom/Fuzzers/fuzzers.cmake @@ -19,6 +19,7 @@ set(FUZZER_TARGETS ICOLoader ILBMLoader IMAPParser + JBIG2Loader JPEGLoader Js JsonParser @@ -92,6 +93,7 @@ set(FUZZER_DEPENDENCIES_ICCProfile LibGfx) set(FUZZER_DEPENDENCIES_ICOLoader LibGfx) set(FUZZER_DEPENDENCIES_ILBMLoader LibGfx) set(FUZZER_DEPENDENCIES_IMAPParser LibIMAP) +set(FUZZER_DEPENDENCIES_JBIG2Loader LibGfx) set(FUZZER_DEPENDENCIES_JPEGLoader LibGfx) set(FUZZER_DEPENDENCIES_Js LibJS) set(FUZZER_DEPENDENCIES_LzmaDecompression LibArchive LibCompress) diff --git a/Userland/Utilities/test-fuzz.cpp b/Userland/Utilities/test-fuzz.cpp index b54c03a3f0..a247e02d9b 100644 --- a/Userland/Utilities/test-fuzz.cpp +++ b/Userland/Utilities/test-fuzz.cpp @@ -33,6 +33,7 @@ T(ICOLoader) \ T(ILBMLoader) \ T(IMAPParser) \ + T(JBIG2Loader) \ T(JPEGLoader) \ T(Js) \ T(JsonParser) \