diff options
author | Fabian Meumertzheim <meumertzheim@code-intelligence.com> | 2021-02-26 11:28:56 +0100 |
---|---|---|
committer | Fabian Meumertzheim <fabian@meumertzhe.im> | 2021-03-22 15:05:37 +0100 |
commit | 0d93c0751adcd8e76ac623e09bbd774ee0f0e755 (patch) | |
tree | a0a2881b0fbaef0f36abf06fff14a93db66c8eba /driver | |
parent | f938920a37042376e56c7ac771886565bcfe8b5e (diff) | |
download | jazzer-api-0d93c0751adcd8e76ac623e09bbd774ee0f0e755.tar.gz |
Replace uses of quick_exit and at_quick_exit
quick_exit is not supported on macOS, but can easily replaced by a call
to _Exit after running our cleanup manually.
Diffstat (limited to 'driver')
-rw-r--r-- | driver/fuzz_target_runner.cpp | 2 | ||||
-rw-r--r-- | driver/libfuzzer_driver.cpp | 1 | ||||
-rw-r--r-- | driver/libfuzzer_fuzz_target.cpp | 6 |
3 files changed, 3 insertions, 6 deletions
diff --git a/driver/fuzz_target_runner.cpp b/driver/fuzz_target_runner.cpp index ae3602e0..0d83264d 100644 --- a/driver/fuzz_target_runner.cpp +++ b/driver/fuzz_target_runner.cpp @@ -166,7 +166,7 @@ FuzzTargetRunner::FuzzTargetRunner( LOG(ERROR) << "Invalid dedup token (expected up to 16 hex digits): '" << str_token << "'"; // Don't let libFuzzer print a crash stack trace. - std::quick_exit(1); + _Exit(1); } } } diff --git a/driver/libfuzzer_driver.cpp b/driver/libfuzzer_driver.cpp index 2accc40d..e7564582 100644 --- a/driver/libfuzzer_driver.cpp +++ b/driver/libfuzzer_driver.cpp @@ -148,7 +148,6 @@ AbstractLibfuzzerDriver::AbstractLibfuzzerDriver( } }; std::atexit(cleanup_fn); - std::at_quick_exit(cleanup_fn); } initJvm(*argv_start); diff --git a/driver/libfuzzer_fuzz_target.cpp b/driver/libfuzzer_fuzz_target.cpp index 7f921321..295f7079 100644 --- a/driver/libfuzzer_fuzz_target.cpp +++ b/driver/libfuzzer_fuzz_target.cpp @@ -50,10 +50,7 @@ extern "C" int LLVMFuzzerInitialize(int *argc, char ***argv) { << std::endl; } gLibfuzzerDriver = std::make_unique<Driver>(argc, argv); - // Run even if we use std::quick_exit to prevent libFuzzer stack trace - // printing. std::atexit(&driver_cleanup); - std::at_quick_exit(&driver_cleanup); return 0; } @@ -74,7 +71,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, const size_t size) { return 0; } // Exit directly without invoking libFuzzer's atexit hook. - std::quick_exit(Driver::kErrorExitCode); + driver_cleanup(); + _Exit(Driver::kErrorExitCode); } else { // libFuzzer failed to register its death callback, exit normally. std::exit(1); |