aboutsummaryrefslogtreecommitdiffstats
path: root/executor/executor_runner.h
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-07-01 14:26:04 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-07-01 13:21:29 +0000
commit1f0ee43044bc8fc00bc1eccc85a93bf2b9972dd1 (patch)
tree5cfc8db10998ff99b5c68376106c0fc0d9c4e5d2 /executor/executor_runner.h
parent76838be540c998a66392d0267d7c9ee3b4a27a46 (diff)
pkg/report: suppress executor SIGBUS
SIGBUS means OOM on Linux. Most of the crashes that happen during fuzzing are SIGBUS, so separate them from SIGSEGV and suppress.
Diffstat (limited to 'executor/executor_runner.h')
-rw-r--r--executor/executor_runner.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/executor/executor_runner.h b/executor/executor_runner.h
index 3bffcaeb2..100ed87f6 100644
--- a/executor/executor_runner.h
+++ b/executor/executor_runner.h
@@ -759,8 +759,9 @@ static void SigsegvHandler(int sig, siginfo_t* info, void* ucontext)
#endif
// Print the current function PC so that it's possible to map the failing PC
// to a symbol in the binary offline (we usually compile as PIE).
- failmsg("SIGSEGV", "sig:%d handler:%p pc:%p addr:%p",
- sig, SigsegvHandler, reinterpret_cast<void*>(pc), info->si_addr);
+ failmsg(sig == SIGSEGV ? "SIGSEGV" : "SIGBUS", "handler:0x%zx pc:%p addr:%p",
+ reinterpret_cast<uintptr_t>(reinterpret_cast<void*>(SigsegvHandler)) - pc,
+ reinterpret_cast<void*>(pc), info->si_addr);
}
static void runner(char** argv, int argc)