From b2626d3bc1499332e4029e154a8eb7b553782a6b Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 31 Dec 2022 13:37:35 +0200 Subject: [PATCH] Lagom/Fuzzers: Add fuzzer for the TGALoader code --- Meta/Lagom/Fuzzers/CMakeLists.txt | 1 + Meta/Lagom/Fuzzers/FuzzTGALoader.cpp | 16 ++++++++++++++++ Userland/Utilities/test-fuzz.cpp | 5 +++++ 3 files changed, 22 insertions(+) create mode 100644 Meta/Lagom/Fuzzers/FuzzTGALoader.cpp diff --git a/Meta/Lagom/Fuzzers/CMakeLists.txt b/Meta/Lagom/Fuzzers/CMakeLists.txt index a7ac9acdbe..9701184814 100644 --- a/Meta/Lagom/Fuzzers/CMakeLists.txt +++ b/Meta/Lagom/Fuzzers/CMakeLists.txt @@ -43,6 +43,7 @@ add_simple_fuzzer(FuzzPoly1305 LibCrypto) add_simple_fuzzer(FuzzPPMLoader LibGfx) add_simple_fuzzer(FuzzPDF LibPDF) add_simple_fuzzer(FuzzQOILoader LibGfx) +add_simple_fuzzer(FuzzTGALoader LibGfx) add_simple_fuzzer(FuzzQuotedPrintableParser LibIMAP) add_simple_fuzzer(FuzzHebrewDecoder LibTextCodec) add_simple_fuzzer(FuzzHttpRequest LibHTTP) diff --git a/Meta/Lagom/Fuzzers/FuzzTGALoader.cpp b/Meta/Lagom/Fuzzers/FuzzTGALoader.cpp new file mode 100644 index 0000000000..7ffe6949ca --- /dev/null +++ b/Meta/Lagom/Fuzzers/FuzzTGALoader.cpp @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2022, Liav A. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include + +extern "C" int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size) +{ + Gfx::TGAImageDecoderPlugin decoder(data, size); + (void)decoder.frame(0); + return 0; +} diff --git a/Userland/Utilities/test-fuzz.cpp b/Userland/Utilities/test-fuzz.cpp index fea99e8686..a7539d1774 100644 --- a/Userland/Utilities/test-fuzz.cpp +++ b/Userland/Utilities/test-fuzz.cpp @@ -25,6 +25,7 @@ T(PNGLoader) \ T(PPMLoader) \ T(QOILoader) \ + T(TGALoader) \ T(RegexECMA262) \ T(RegexPosixExtended) \ T(Shell) \ @@ -92,6 +93,10 @@ ENUMERATE_TARGETS(__ENUMERATE_TARGET) #include #undef LLVMFuzzerTestOneInput +#define LLVMFuzzerTestOneInput TestTGALoader +#include +#undef LLVMFuzzerTestOneInput + #define LLVMFuzzerTestOneInput TestRegexECMA262 #include #undef LLVMFuzzerTestOneInput