diff options
author | Jiangen Jiao <joeyjiaojg@qq.com> | 2021-04-07 11:28:19 +0800 |
---|---|---|
committer | Jiangen Jiao <joeyjiaojg@qq.com> | 2021-04-07 11:28:19 +0800 |
commit | 28878c69e0c275e42b40bc2ab17bdca7dd1a989e (patch) | |
tree | e78fb8ffab8840a31dfe8b1a9832e4fcbb4a9f83 | |
parent | 9d1be3162a613949003d84a506eddd7acd79680a (diff) | |
download | afl++-28878c69e0c275e42b40bc2ab17bdca7dd1a989e.tar.gz |
android: disable sigaction inside debuggerd
check https://github.com/google/AFL/blob/master/docs/INSTALL#L173
-rw-r--r-- | instrumentation/afl-compiler-rt.o.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c index 1f003c1e..552bbea8 100644 --- a/instrumentation/afl-compiler-rt.o.c +++ b/instrumentation/afl-compiler-rt.o.c @@ -1144,6 +1144,18 @@ void __afl_manual_init(void) { __attribute__((constructor())) void __afl_auto_init(void) { +#ifdef __ANDROID__ + // Disable handlers in linker/debuggerd, check include/debuggerd/handler.h + signal(SIGABRT, SIG_DFL); + signal(SIGBUS, SIG_DFL); + signal(SIGFPE, SIG_DFL); + signal(SIGILL, SIG_DFL); + signal(SIGSEGV, SIG_DFL); + signal(SIGSTKFLT, SIG_DFL); + signal(SIGSYS, SIG_DFL); + signal(SIGTRAP, SIG_DFL); +#endif + if (getenv("AFL_DISABLE_LLVM_INSTRUMENTATION")) return; if (getenv(DEFER_ENV_VAR)) return; |