AK: Add roundtrip fuzzer for Base64
This commit is contained in:
parent
6c1626e83b
commit
b56e022ce8
Notes:
sideshowbarker
2024-07-17 06:39:26 +09:00
Author: https://github.com/Janiczek Commit: https://github.com/SerenityOS/serenity/commit/b56e022ce8 Pull-request: https://github.com/SerenityOS/serenity/pull/21618 Reviewed-by: https://github.com/ADKaster Reviewed-by: https://github.com/timschumi ✅
3 changed files with 23 additions and 0 deletions
21
Meta/Lagom/Fuzzers/FuzzBase64Roundtrip.cpp
Normal file
21
Meta/Lagom/Fuzzers/FuzzBase64Roundtrip.cpp
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023, the SerenityOS developers.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <AK/Base64.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
extern "C" int LLVMFuzzerTestOneInput(uint8_t const* data, size_t size)
|
||||||
|
{
|
||||||
|
AK::set_debug_enabled(false);
|
||||||
|
auto input = ReadonlyBytes { data, size };
|
||||||
|
|
||||||
|
auto encoded = MUST(encode_base64(input));
|
||||||
|
auto decoded = MUST(decode_base64(encoded));
|
||||||
|
|
||||||
|
VERIFY(decoded == input);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
set(FUZZER_TARGETS
|
set(FUZZER_TARGETS
|
||||||
ASN1
|
ASN1
|
||||||
|
Base64Roundtrip
|
||||||
BLAKE2b
|
BLAKE2b
|
||||||
BMPLoader
|
BMPLoader
|
||||||
Brotli
|
Brotli
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
// TODO: Look into generating this from the authoritative list of fuzzing targets in fuzzer.cmake.
|
// TODO: Look into generating this from the authoritative list of fuzzing targets in fuzzer.cmake.
|
||||||
#define ENUMERATE_TARGETS(T) \
|
#define ENUMERATE_TARGETS(T) \
|
||||||
T(ASN1) \
|
T(ASN1) \
|
||||||
|
T(Base64Roundtrip) \
|
||||||
T(BLAKE2b) \
|
T(BLAKE2b) \
|
||||||
T(BMPLoader) \
|
T(BMPLoader) \
|
||||||
T(Brotli) \
|
T(Brotli) \
|
||||||
|
|
Loading…
Add table
Reference in a new issue