about summary refs log tree commit diff
path: root/instrumentation/afl-compiler-rt.o.c
diff options
context:
space:
mode:
authorhexcoder <hexcoder-@users.noreply.github.com>2021-04-07 11:14:34 +0200
committerGitHub <noreply@github.com>2021-04-07 11:14:34 +0200
commit46e35e940132024de6cc4f13088fec6d65f69790 (patch)
treee78fb8ffab8840a31dfe8b1a9832e4fcbb4a9f83 /instrumentation/afl-compiler-rt.o.c
parent9d1be3162a613949003d84a506eddd7acd79680a (diff)
parent28878c69e0c275e42b40bc2ab17bdca7dd1a989e (diff)
downloadafl++-46e35e940132024de6cc4f13088fec6d65f69790.tar.gz
Merge pull request #860 from joeyjiaojg/dev
android: disable sigaction inside debuggerd
Diffstat (limited to 'instrumentation/afl-compiler-rt.o.c')
-rw-r--r--instrumentation/afl-compiler-rt.o.c12
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;