From 92672b1520c49b61784b10d2f8ca87ef5290513c Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Tue, 21 Dec 2021 12:11:00 +0100 Subject: [PATCH] Meta: Add a fuzzer for the QOILoader --- Meta/Lagom/Fuzzers/CMakeLists.txt | 1 + Meta/Lagom/Fuzzers/FuzzQOILoader.cpp | 16 ++++++++++++++++ Userland/Utilities/test-fuzz.cpp | 5 +++++ 3 files changed, 22 insertions(+) create mode 100644 Meta/Lagom/Fuzzers/FuzzQOILoader.cpp diff --git a/Meta/Lagom/Fuzzers/CMakeLists.txt b/Meta/Lagom/Fuzzers/CMakeLists.txt index 96430496ce..da2c8e37f7 100644 --- a/Meta/Lagom/Fuzzers/CMakeLists.txt +++ b/Meta/Lagom/Fuzzers/CMakeLists.txt @@ -34,6 +34,7 @@ add_simple_fuzzer(FuzzPBMLoader LagomGfx) add_simple_fuzzer(FuzzPGMLoader LagomGfx) add_simple_fuzzer(FuzzPPMLoader LagomGfx) add_simple_fuzzer(FuzzPDF LagomPDF) +add_simple_fuzzer(FuzzQOILoader LagomGfx) add_simple_fuzzer(FuzzQuotedPrintableParser LagomIMAP) add_simple_fuzzer(FuzzHebrewDecoder LagomTextCodec) add_simple_fuzzer(FuzzHttpRequest LagomHTTP) diff --git a/Meta/Lagom/Fuzzers/FuzzQOILoader.cpp b/Meta/Lagom/Fuzzers/FuzzQOILoader.cpp new file mode 100644 index 0000000000..4714b9f738 --- /dev/null +++ b/Meta/Lagom/Fuzzers/FuzzQOILoader.cpp @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2020, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +extern "C" int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size) +{ + Gfx::QOIImageDecoderPlugin decoder(data, size); + (void)decoder.frame(0); + return 0; +} diff --git a/Userland/Utilities/test-fuzz.cpp b/Userland/Utilities/test-fuzz.cpp index 6bcca2097a..1ca6bb203b 100644 --- a/Userland/Utilities/test-fuzz.cpp +++ b/Userland/Utilities/test-fuzz.cpp @@ -24,6 +24,7 @@ T(PGMLoader) \ T(PNGLoader) \ T(PPMLoader) \ + T(QOILoader) \ T(RegexECMA262) \ T(RegexPosixExtended) \ T(Shell) \ @@ -87,6 +88,10 @@ ENUMERATE_TARGETS(__ENUMERATE_TARGET) #include #undef LLVMFuzzerTestOneInput +#define LLVMFuzzerTestOneInput TestQOILoader +#include +#undef LLVMFuzzerTestOneInput + #define LLVMFuzzerTestOneInput TestRegexECMA262 #include #undef LLVMFuzzerTestOneInput