mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
Meta: Fuzz the LibIMAP Parser
This commit is contained in:
parent
8c6061fc4a
commit
ac712b07f9
Notes:
sideshowbarker
2024-07-18 12:25:16 +09:00
Author: https://github.com/X-yl Commit: https://github.com/SerenityOS/serenity/commit/ac712b07f9c Pull-request: https://github.com/SerenityOS/serenity/pull/7735 Reviewed-by: https://github.com/ADKaster Reviewed-by: https://github.com/MaxWipfli Reviewed-by: https://github.com/alimpfard
3 changed files with 20 additions and 1 deletions
|
@ -84,6 +84,7 @@ file(GLOB LIBSQL_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibSQL/*.cp
|
||||||
list(REMOVE_ITEM LIBSQL_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/../../Userland/Libraries/LibSQL/SyntaxHighlighter.cpp")
|
list(REMOVE_ITEM LIBSQL_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/../../Userland/Libraries/LibSQL/SyntaxHighlighter.cpp")
|
||||||
file(GLOB LIBSQL_TEST_SOURCES CONFIGURE_DEPENDS "../../Tests/LibSQL/*.cpp")
|
file(GLOB LIBSQL_TEST_SOURCES CONFIGURE_DEPENDS "../../Tests/LibSQL/*.cpp")
|
||||||
file(GLOB LIBWASM_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWasm/*/*.cpp")
|
file(GLOB LIBWASM_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWasm/*/*.cpp")
|
||||||
|
file(GLOB LIBIMAP_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibIMAP/*.cpp")
|
||||||
|
|
||||||
file(GLOB LIBTEST_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibTest/*.cpp")
|
file(GLOB LIBTEST_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibTest/*.cpp")
|
||||||
list(FILTER LIBTEST_SOURCES EXCLUDE REGEX ".*Main.cpp$")
|
list(FILTER LIBTEST_SOURCES EXCLUDE REGEX ".*Main.cpp$")
|
||||||
|
@ -91,7 +92,7 @@ file(GLOB LIBTEST_MAIN CONFIGURE_DEPENDS "../../Userland/Libraries/LibTest/TestM
|
||||||
|
|
||||||
set(LAGOM_REGEX_SOURCES ${LIBREGEX_LIBC_SOURCES} ${LIBREGEX_SOURCES})
|
set(LAGOM_REGEX_SOURCES ${LIBREGEX_LIBC_SOURCES} ${LIBREGEX_SOURCES})
|
||||||
set(LAGOM_CORE_SOURCES ${AK_SOURCES} ${LIBCORE_SOURCES})
|
set(LAGOM_CORE_SOURCES ${AK_SOURCES} ${LIBCORE_SOURCES})
|
||||||
set(LAGOM_MORE_SOURCES ${LIBARCHIVE_SOURCES} ${LIBAUDIO_SOURCES} ${LIBELF_SOURCES} ${LIBIPC_SOURCES} ${LIBLINE_SOURCES} ${LIBJS_SOURCES} ${LIBJS_SUBDIR_SOURCES} ${LIBX86_SOURCES} ${LIBCRYPTO_SOURCES} ${LIBCOMPRESS_SOURCES} ${LIBCRYPTO_SUBDIR_SOURCES} ${LIBCRYPTO_SUBSUBDIR_SOURCES} ${LIBTLS_SOURCES} ${LIBTTF_SOURCES} ${LIBTEXTCODEC_SOURCES} ${LIBMARKDOWN_SOURCES} ${LIBGEMINI_SOURCES} ${LIBGFX_SOURCES} ${LIBGUI_GML_SOURCES} ${LIBHTTP_SOURCES} ${LAGOM_REGEX_SOURCES} ${SHELL_SOURCES} ${LIBSQL_SOURCES} ${LIBWASM_SOURCES})
|
set(LAGOM_MORE_SOURCES ${LIBARCHIVE_SOURCES} ${LIBAUDIO_SOURCES} ${LIBELF_SOURCES} ${LIBIPC_SOURCES} ${LIBLINE_SOURCES} ${LIBJS_SOURCES} ${LIBJS_SUBDIR_SOURCES} ${LIBX86_SOURCES} ${LIBCRYPTO_SOURCES} ${LIBCOMPRESS_SOURCES} ${LIBCRYPTO_SUBDIR_SOURCES} ${LIBCRYPTO_SUBSUBDIR_SOURCES} ${LIBTLS_SOURCES} ${LIBTTF_SOURCES} ${LIBTEXTCODEC_SOURCES} ${LIBMARKDOWN_SOURCES} ${LIBGEMINI_SOURCES} ${LIBGFX_SOURCES} ${LIBGUI_GML_SOURCES} ${LIBHTTP_SOURCES} ${LAGOM_REGEX_SOURCES} ${SHELL_SOURCES} ${LIBSQL_SOURCES} ${LIBWASM_SOURCES} ${LIBIMAP_SOURCES})
|
||||||
set(LAGOM_TEST_SOURCES ${LIBTEST_SOURCES})
|
set(LAGOM_TEST_SOURCES ${LIBTEST_SOURCES})
|
||||||
|
|
||||||
# FIXME: This is a hack, because the lagom stuff can be build individually or
|
# FIXME: This is a hack, because the lagom stuff can be build individually or
|
||||||
|
|
|
@ -32,6 +32,7 @@ add_simple_fuzzer(FuzzPGMLoader)
|
||||||
add_simple_fuzzer(FuzzPPMLoader)
|
add_simple_fuzzer(FuzzPPMLoader)
|
||||||
add_simple_fuzzer(FuzzHebrewDecoder)
|
add_simple_fuzzer(FuzzHebrewDecoder)
|
||||||
add_simple_fuzzer(FuzzHttpRequest)
|
add_simple_fuzzer(FuzzHttpRequest)
|
||||||
|
add_simple_fuzzer(FuzzIMAPParser)
|
||||||
add_simple_fuzzer(FuzzJs)
|
add_simple_fuzzer(FuzzJs)
|
||||||
add_simple_fuzzer(FuzzLatin1Decoder)
|
add_simple_fuzzer(FuzzLatin1Decoder)
|
||||||
add_simple_fuzzer(FuzzLatin2Decoder)
|
add_simple_fuzzer(FuzzLatin2Decoder)
|
||||||
|
|
17
Meta/Lagom/Fuzzers/FuzzIMAPParser.cpp
Normal file
17
Meta/Lagom/Fuzzers/FuzzIMAPParser.cpp
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2021, Kyle Pereira <hey@xylepereira.me>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <LibIMAP/Parser.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
|
||||||
|
{
|
||||||
|
auto parser = IMAP::Parser();
|
||||||
|
parser.parse(ByteBuffer::copy(data, size), true);
|
||||||
|
parser.parse(ByteBuffer::copy(data, size), false);
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in a new issue