diff options
| author | Jonathan Metzman <metzman@chromium.org> | 2019-04-18 18:49:11 +0000 |
|---|---|---|
| committer | Jonathan Metzman <metzman@chromium.org> | 2019-04-18 18:49:11 +0000 |
| commit | 139e216e6610091b7ee3c30bc11114f5d73cbd3e (patch) | |
| tree | 58edb62e8ecd0fa2e4ce2b8aab352ae2402ef90d /compiler-rt/test/fuzzer/AFLDriverTest.cpp | |
| parent | d573aa0156b6aaf0e3cff13958f80d7c227cd656 (diff) | |
| download | bcm5719-llvm-139e216e6610091b7ee3c30bc11114f5d73cbd3e.tar.gz bcm5719-llvm-139e216e6610091b7ee3c30bc11114f5d73cbd3e.zip | |
Summary:
Add close_fd_mask functionality to AFL driver.
Summary:
Add support for env var AFL_DRIVER_CLOSE_FD_MASK which behaves
the same as libFuzzer's -close_fd_mask=1.
Also add tests.
Reviewers: kcc, vitalybuka, morehouse
Reviewed By: morehouse
Subscribers: #sanitizers, llvm-commits
Tags: #sanitizers, #llvm
Differential Revision: https://reviews.llvm.org/D60334
llvm-svn: 358703
Diffstat (limited to 'compiler-rt/test/fuzzer/AFLDriverTest.cpp')
| -rw-r--r-- | compiler-rt/test/fuzzer/AFLDriverTest.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/compiler-rt/test/fuzzer/AFLDriverTest.cpp b/compiler-rt/test/fuzzer/AFLDriverTest.cpp index d2937d004d1..84b5f9f6ba2 100644 --- a/compiler-rt/test/fuzzer/AFLDriverTest.cpp +++ b/compiler-rt/test/fuzzer/AFLDriverTest.cpp @@ -2,28 +2,33 @@ // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// Contains dummy functions used to avoid dependency on AFL. #include <stdint.h> #include <stdio.h> #include <stdlib.h> +// Dummy functions used to avoid dependency on AFL. extern "C" void __afl_manual_init() {} extern "C" int __afl_persistent_loop(unsigned int N) { static int Count = N; - fprintf(stderr, "__afl_persistent_loop calle, Count = %d\n", Count); - if (Count--) return 1; - return 0; + fprintf(stderr, "__afl_persistent_loop called, Count = %d\n", Count); + return Count--; } // This declaration exists to prevent the Darwin linker // from complaining about this being a missing weak symbol. extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) { - fprintf(stderr, "LLVMFuzzerInitialize called\n"); return 0; } extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { - fprintf(stderr, "LLVMFuzzerTestOneInput called; Size = %zd\n", Size); - return 0; + puts("STDOUT MESSAGE"); + fflush(stdout); + fprintf(stderr, "STDERR MESSAGE\n" + "LLVMFuzzerTestOneInput called; Size = %zd\n", + Size); + if (Size < 4) + return 0; + + return Data[Size]; } |

