diff --git a/linux-user/signal.c b/linux-user/signal.c index 3c1b6a3b11..5774832bff 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -693,6 +693,13 @@ void cpu_loop_exit_sigbus(CPUState *cpu, target_ulong addr, cpu_loop_exit_restore(cpu, ra); } +//// --- Begin LibAFL code --- + +__attribute__((weak)) void libafl_executor_reinstall_handlers(void); +__attribute__((weak)) void libafl_executor_reinstall_handlers(void) {} + +//// --- End LibAFL code --- + /* abort execution with signal */ static G_NORETURN void dump_core_and_abort(CPUArchState *cpu_env, int target_sig) @@ -737,6 +744,12 @@ void dump_core_and_abort(CPUArchState *cpu_env, int target_sig) act.sa_flags = 0; // sigaction(host_sig, &act, NULL); // LibAFL uses it's own handler +//// --- Begin LibAFL code --- + + libafl_executor_reinstall_handlers(); + +//// --- End LibAFL code --- + /* For some reason raise(host_sig) doesn't send the signal when * statically linked on x86-64. */ kill(getpid(), host_sig);