diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-07-01 14:26:04 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-07-01 13:21:29 +0000 |
| commit | 1f0ee43044bc8fc00bc1eccc85a93bf2b9972dd1 (patch) | |
| tree | 5cfc8db10998ff99b5c68376106c0fc0d9c4e5d2 /executor | |
| parent | 76838be540c998a66392d0267d7c9ee3b4a27a46 (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')
| -rw-r--r-- | executor/executor_runner.h | 5 |
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) |
