From: Radoslaw Zarzynski Date: Tue, 22 Jun 2021 14:23:02 +0000 (+0000) Subject: crimson/common: FatalSignal::signaled() takes siginfo by a reference. X-Git-Tag: v17.1.0~1554^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9250882347888f3b30c2abe66a0fc98d38057027;p=ceph.git crimson/common: FatalSignal::signaled() takes siginfo by a reference. There is no point in having the distincted `nullptr` value. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/common/fatal_signal.cc b/src/crimson/common/fatal_signal.cc index dccd3a88fb17..43909fee418a 100644 --- a/src/crimson/common/fatal_signal.cc +++ b/src/crimson/common/fatal_signal.cc @@ -40,7 +40,8 @@ void FatalSignal::install_oneshot_signal_handler() if (static std::atomic_bool handled{false}; handled.exchange(true)) { return; } - FatalSignal::signaled(sig, info); + assert(info); + FatalSignal::signaled(sig, *info); ::signal(sig, SIG_DFL); }; sigfillset(&sa.sa_mask); @@ -65,9 +66,9 @@ static void print_backtrace(std::string_view cause) { // see handle_fatal_signal() } -static void print_segv_info(const siginfo_t* siginfo) +static void print_segv_info(const siginfo_t& siginfo) { - std::cerr << "Fault at location: " << siginfo->si_addr << std::endl; + std::cerr << "Fault at location: " << siginfo.si_addr << std::endl; std::cerr << std::flush; } @@ -97,7 +98,7 @@ static void print_proc_maps() } } -void FatalSignal::signaled(const int signum, const siginfo_t* siginfo) +void FatalSignal::signaled(const int signum, const siginfo_t& siginfo) { switch (signum) { case SIGSEGV: diff --git a/src/crimson/common/fatal_signal.h b/src/crimson/common/fatal_signal.h index 987f75bf94bf..dd366c28143f 100644 --- a/src/crimson/common/fatal_signal.h +++ b/src/crimson/common/fatal_signal.h @@ -10,7 +10,7 @@ public: FatalSignal(); private: - static void signaled(int signum, const siginfo_t* siginfo); + static void signaled(int signum, const siginfo_t& siginfo); template void install_oneshot_signals_handler();