diff --git a/Meta/Lagom/Fuzzers/FuzzJPEG2000Loader.cpp b/Meta/Lagom/Fuzzers/FuzzJPEG2000Loader.cpp new file mode 100644 index 000000000000000..93ebf66228aaeee --- /dev/null +++ b/Meta/Lagom/Fuzzers/FuzzJPEG2000Loader.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::JPEG2000ImageDecoderPlugin::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 bb05b4086632d0c..09347d416380d75 100644 --- a/Meta/Lagom/Fuzzers/fuzzers.cmake +++ b/Meta/Lagom/Fuzzers/fuzzers.cmake @@ -20,6 +20,7 @@ set(FUZZER_TARGETS ILBMLoader IMAPParser JBIG2Loader + JPEG2000Loader JPEGLoader Js JsonParser @@ -94,6 +95,7 @@ set(FUZZER_DEPENDENCIES_ICOLoader LibGfx) set(FUZZER_DEPENDENCIES_ILBMLoader LibGfx) set(FUZZER_DEPENDENCIES_IMAPParser LibIMAP) set(FUZZER_DEPENDENCIES_JBIG2Loader LibGfx) +set(FUZZER_DEPENDENCIES_JPEG2000Loader 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 a247e02d9b716c7..13a949b057fbd0e 100644 --- a/Userland/Utilities/test-fuzz.cpp +++ b/Userland/Utilities/test-fuzz.cpp @@ -34,6 +34,7 @@ T(ILBMLoader) \ T(IMAPParser) \ T(JBIG2Loader) \ + T(JPEG2000Loader) \ T(JPEGLoader) \ T(Js) \ T(JsonParser) \