From 54ac57b6f736d6302a2c4399ffc8af563100dff1 Mon Sep 17 00:00:00 2001 From: Andrea Fioraldi Date: Mon, 27 Sep 2021 15:24:35 +0200 Subject: [PATCH] Default ASan options from AFL++ in libafl_targets --- libafl_targets/build.rs | 15 ++++++++++----- libafl_targets/src/common.c | 10 ++++++++++ .../{libfuzzer_compatibility.c => libfuzzer.c} | 0 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 libafl_targets/src/common.c rename libafl_targets/src/{libfuzzer_compatibility.c => libfuzzer.c} (100%) diff --git a/libafl_targets/build.rs b/libafl_targets/build.rs index eca428d100..86d727d517 100644 --- a/libafl_targets/build.rs +++ b/libafl_targets/build.rs @@ -46,8 +46,6 @@ pub const CMPLOG_MAP_H: usize = {}; println!("cargo:rerun-if-env-changed=LIBAFL_CMPLOG_MAP_W"); println!("cargo:rerun-if-env-changed=LIBAFL_CMPLOG_MAP_H"); - println!("cargo:rerun-if-changed=src/common.h"); - //std::env::set_var("CC", "clang"); //std::env::set_var("CXX", "clang++"); @@ -78,13 +76,20 @@ pub const CMPLOG_MAP_H: usize = {}; #[cfg(feature = "libfuzzer")] { - println!("cargo:rerun-if-changed=src/libfuzzer_compatibility.c"); + println!("cargo:rerun-if-changed=src/libfuzzer.c"); cc::Build::new() - .file(src_dir.join("libfuzzer_compatibility.c")) - .compile("libfuzzer_compatibility"); + .file(src_dir.join("libfuzzer.c")) + .compile("libfuzzer"); } + println!("cargo:rerun-if-changed=src/common.h"); + println!("cargo:rerun-if-changed=src/common.c"); + + cc::Build::new() + .file(src_dir.join("common.c")) + .compile("common"); + println!("cargo:rerun-if-changed=src/cmplog.h"); println!("cargo:rerun-if-changed=src/cmplog.c"); diff --git a/libafl_targets/src/common.c b/libafl_targets/src/common.c new file mode 100644 index 0000000000..aa1d6101e9 --- /dev/null +++ b/libafl_targets/src/common.c @@ -0,0 +1,10 @@ +#include "common.h" + +EXT_FUNC_IMPL(__asan_default_options, const char*, (), false) { + return "abort_on_error=1:detect_leaks=0:" + "malloc_context_size=0:symbolize=0:" + "allocator_may_return_null=1:" + "detect_odr_violation=0:handle_segv=0:" + "handle_sigbus=0:handle_abort=0:" + "handle_sigfpe=0:handle_sigill=0"; +} diff --git a/libafl_targets/src/libfuzzer_compatibility.c b/libafl_targets/src/libfuzzer.c similarity index 100% rename from libafl_targets/src/libfuzzer_compatibility.c rename to libafl_targets/src/libfuzzer.c