From 9690b4011b250a0c55a534e51f62af1fe1d10b37 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Tue, 23 May 2023 00:21:44 +0200 Subject: [PATCH] Lagom: Extract the list of fuzzing targets to a separate file --- Meta/Lagom/Fuzzers/CMakeLists.txt | 69 ++-------------- Meta/Lagom/Fuzzers/fuzzers.cmake | 129 ++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 64 deletions(-) create mode 100644 Meta/Lagom/Fuzzers/fuzzers.cmake diff --git a/Meta/Lagom/Fuzzers/CMakeLists.txt b/Meta/Lagom/Fuzzers/CMakeLists.txt index 9142ced919..7f5fde96c9 100644 --- a/Meta/Lagom/Fuzzers/CMakeLists.txt +++ b/Meta/Lagom/Fuzzers/CMakeLists.txt @@ -18,70 +18,11 @@ function(add_simple_fuzzer name) endif() endfunction() -add_simple_fuzzer(FuzzBMPLoader LibGfx) -add_simple_fuzzer(FuzzBrotli LibCompress) -if (ENABLE_LAGOM_LIBWEB) - add_simple_fuzzer(FuzzCSSParser LibWeb) -endif() -add_simple_fuzzer(FuzzCyrillicDecoder LibTextCodec) -add_simple_fuzzer(FuzzDeflateCompression LibCompress) -add_simple_fuzzer(FuzzDeflateDecompression LibCompress) -add_simple_fuzzer(FuzzELF LibELF) -add_simple_fuzzer(FuzzFlacLoader LibAudio) -add_simple_fuzzer(FuzzGemini LibGemini) -add_simple_fuzzer(FuzzGIFLoader LibGfx) -add_simple_fuzzer(FuzzGzipCompression LibCompress) -add_simple_fuzzer(FuzzGzipDecompression LibCompress) -add_simple_fuzzer(FuzzICCProfile LibGfx) -add_simple_fuzzer(FuzzICOLoader LibGfx) -add_simple_fuzzer(FuzzJPEGLoader LibGfx) -add_simple_fuzzer(FuzzLzmaDecompression LibArchive LibCompress) -add_simple_fuzzer(FuzzLzmaRoundtrip LibCompress) -add_simple_fuzzer(FuzzMatroskaReader LibVideo) -add_simple_fuzzer(FuzzMD5 LibCrypto) -add_simple_fuzzer(FuzzMP3Loader LibAudio) -add_simple_fuzzer(FuzzPEM LibCrypto) -add_simple_fuzzer(FuzzPNGLoader LibGfx) -add_simple_fuzzer(FuzzPBMLoader LibGfx) -add_simple_fuzzer(FuzzPGMLoader LibGfx) -add_simple_fuzzer(FuzzPoly1305 LibCrypto) -add_simple_fuzzer(FuzzPPMLoader LibGfx) -add_simple_fuzzer(FuzzPDF LibPDF) -add_simple_fuzzer(FuzzQOALoader LibAudio) -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) -add_simple_fuzzer(FuzzIMAPParser LibIMAP) -add_simple_fuzzer(FuzzJs LibJS) -add_simple_fuzzer(FuzzLatin1Decoder LibTextCodec) -add_simple_fuzzer(FuzzLatin2Decoder LibTextCodec) -add_simple_fuzzer(FuzzMarkdown LibMarkdown) -add_simple_fuzzer(FuzzRegexECMA262 LibRegex) -add_simple_fuzzer(FuzzRegexPosixBasic LibRegex) -add_simple_fuzzer(FuzzRegexPosixExtended LibRegex) -add_simple_fuzzer(FuzzASN1 LibCrypto LibTLS) -add_simple_fuzzer(FuzzSHA1 LibCrypto) -add_simple_fuzzer(FuzzSHA256 LibCrypto) -add_simple_fuzzer(FuzzSHA384 LibCrypto) -add_simple_fuzzer(FuzzSHA512 LibCrypto) -add_simple_fuzzer(FuzzShell LibShell) -add_simple_fuzzer(FuzzShellPosix LibShell) -add_simple_fuzzer(FuzzSQLParser LibSQL) -add_simple_fuzzer(FuzzTar LibArchive) -add_simple_fuzzer(FuzzTTF LibGfx) -add_simple_fuzzer(FuzzURL) -add_simple_fuzzer(FuzzUTF16BEDecoder LibTextCodec) -add_simple_fuzzer(FuzzRSAKeyParsing LibCrypto) -add_simple_fuzzer(FuzzVP9Decoder LibVideo) -add_simple_fuzzer(FuzzWAVLoader LibAudio) -add_simple_fuzzer(FuzzWasmParser LibWasm) -add_simple_fuzzer(FuzzWebPLoader LibGfx) -add_simple_fuzzer(FuzzWOFF LibGfx) -add_simple_fuzzer(FuzzXML LibXML) -add_simple_fuzzer(FuzzZip LibArchive) -add_simple_fuzzer(FuzzZlibDecompression LibCompress) +include(fuzzers.cmake) + +foreach(target IN LISTS FUZZER_TARGETS) + add_simple_fuzzer("Fuzz${target}" "${FUZZER_DEPENDENCIES_${target}}") +endforeach() if (ENABLE_FUZZERS_LIBFUZZER) set(CMAKE_EXE_LINKER_FLAGS "${ORIGINAL_CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") diff --git a/Meta/Lagom/Fuzzers/fuzzers.cmake b/Meta/Lagom/Fuzzers/fuzzers.cmake new file mode 100644 index 0000000000..e767daefa6 --- /dev/null +++ b/Meta/Lagom/Fuzzers/fuzzers.cmake @@ -0,0 +1,129 @@ +set(FUZZER_TARGETS + ASN1 + BMPLoader + Brotli + CyrillicDecoder + DeflateCompression + DeflateDecompression + ELF + FlacLoader + Gemini + GIFLoader + GzipCompression + GzipDecompression + HebrewDecoder + HttpRequest + ICCProfile + ICOLoader + IMAPParser + JPEGLoader + Js + Latin1Decoder + Latin2Decoder + LzmaDecompression + LzmaRoundtrip + Markdown + MatroskaReader + MD5 + MP3Loader + PBMLoader + PDF + PEM + PGMLoader + PNGLoader + Poly1305 + PPMLoader + QOALoader + QOILoader + QuotedPrintableParser + RegexECMA262 + RegexPosixBasic + RegexPosixExtended + RSAKeyParsing + SHA1 + SHA256 + SHA384 + SHA512 + Shell + ShellPosix + SQLParser + Tar + TGALoader + TTF + URL + UTF16BEDecoder + VP9Decoder + WasmParser + WAVLoader + WebPLoader + WOFF + XML + Zip + ZlibDecompression +) + +if (ENABLE_LAGOM_LIBWEB) + list(APPEND FUZZER_TARGETS CSSParser) +endif() + +set(FUZZER_DEPENDENCIES_ASN1 LibCrypto LibTLS) +set(FUZZER_DEPENDENCIES_BMPLoader LibGfx) +set(FUZZER_DEPENDENCIES_Brotli LibCompress) +set(FUZZER_DEPENDENCIES_CSSParser LibWeb) +set(FUZZER_DEPENDENCIES_CyrillicDecoder LibTextCodec) +set(FUZZER_DEPENDENCIES_DeflateCompression LibCompress) +set(FUZZER_DEPENDENCIES_DeflateDecompression LibCompress) +set(FUZZER_DEPENDENCIES_ELF LibELF) +set(FUZZER_DEPENDENCIES_FlacLoader LibAudio) +set(FUZZER_DEPENDENCIES_Gemini LibGemini) +set(FUZZER_DEPENDENCIES_GIFLoader LibGfx) +set(FUZZER_DEPENDENCIES_GzipCompression LibCompress) +set(FUZZER_DEPENDENCIES_GzipDecompression LibCompress) +set(FUZZER_DEPENDENCIES_HebrewDecoder LibTextCodec) +set(FUZZER_DEPENDENCIES_HttpRequest LibHTTP) +set(FUZZER_DEPENDENCIES_ICCProfile LibGfx) +set(FUZZER_DEPENDENCIES_ICOLoader LibGfx) +set(FUZZER_DEPENDENCIES_IMAPParser LibIMAP) +set(FUZZER_DEPENDENCIES_JPEGLoader LibGfx) +set(FUZZER_DEPENDENCIES_Js LibJS) +set(FUZZER_DEPENDENCIES_Latin1Decoder LibTextCodec) +set(FUZZER_DEPENDENCIES_Latin2Decoder LibTextCodec) +set(FUZZER_DEPENDENCIES_LzmaDecompression LibArchive LibCompress) +set(FUZZER_DEPENDENCIES_LzmaRoundtrip LibCompress) +set(FUZZER_DEPENDENCIES_Markdown LibMarkdown) +set(FUZZER_DEPENDENCIES_MatroskaReader LibVideo) +set(FUZZER_DEPENDENCIES_MD5 LibCrypto) +set(FUZZER_DEPENDENCIES_MP3Loader LibAudio) +set(FUZZER_DEPENDENCIES_PBMLoader LibGfx) +set(FUZZER_DEPENDENCIES_PDF LibPDF) +set(FUZZER_DEPENDENCIES_PEM LibCrypto) +set(FUZZER_DEPENDENCIES_PGMLoader LibGfx) +set(FUZZER_DEPENDENCIES_PNGLoader LibGfx) +set(FUZZER_DEPENDENCIES_Poly1305 LibCrypto) +set(FUZZER_DEPENDENCIES_PPMLoader LibGfx) +set(FUZZER_DEPENDENCIES_QOALoader LibAudio) +set(FUZZER_DEPENDENCIES_QOILoader LibGfx) +set(FUZZER_DEPENDENCIES_QuotedPrintableParser LibIMAP) +set(FUZZER_DEPENDENCIES_RegexECMA262 LibRegex) +set(FUZZER_DEPENDENCIES_RegexPosixBasic LibRegex) +set(FUZZER_DEPENDENCIES_RegexPosixExtended LibRegex) +set(FUZZER_DEPENDENCIES_RSAKeyParsing LibCrypto) +set(FUZZER_DEPENDENCIES_SHA1 LibCrypto) +set(FUZZER_DEPENDENCIES_SHA256 LibCrypto) +set(FUZZER_DEPENDENCIES_SHA384 LibCrypto) +set(FUZZER_DEPENDENCIES_SHA512 LibCrypto) +set(FUZZER_DEPENDENCIES_Shell LibShell) +set(FUZZER_DEPENDENCIES_ShellPosix LibShell) +set(FUZZER_DEPENDENCIES_SQLParser LibSQL) +set(FUZZER_DEPENDENCIES_Tar LibArchive) +set(FUZZER_DEPENDENCIES_TGALoader LibGfx) +set(FUZZER_DEPENDENCIES_TTF LibGfx) +set(FUZZER_DEPENDENCIES_UTF16BEDecoder LibTextCodec) +set(FUZZER_DEPENDENCIES_VP9Decoder LibVideo) +set(FUZZER_DEPENDENCIES_WasmParser LibWasm) +set(FUZZER_DEPENDENCIES_WAVLoader LibAudio) +set(FUZZER_DEPENDENCIES_WebPLoader LibGfx) +set(FUZZER_DEPENDENCIES_WOFF LibGfx) +set(FUZZER_DEPENDENCIES_XML LibXML) +set(FUZZER_DEPENDENCIES_Zip LibArchive) +set(FUZZER_DEPENDENCIES_ZlibDecompression LibCompress)