From 7bfbe4171491c24d3eac8ba55e2cfeba8310cb44 Mon Sep 17 00:00:00 2001 From: Xiaohui Niu Date: Fri, 26 Apr 2024 11:08:15 +0800 Subject: [PATCH] Fix fallback signal issue. Add signo for target thread in fallback path; Update test for seccomp tombstone thread abort. Bug: 336946834 Test: debuggerd_test Test: Send fatal signal to process with NO_NEW_PRIVS Change-Id: Ie9d77a93da9cd89ab7093b8949f311e03d96ec50 --- debuggerd/debuggerd_test.cpp | 3 +++ debuggerd/libdebuggerd/tombstone.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/debuggerd/debuggerd_test.cpp b/debuggerd/debuggerd_test.cpp index 7c52e6e50..e4e2f99cc 100644 --- a/debuggerd/debuggerd_test.cpp +++ b/debuggerd/debuggerd_test.cpp @@ -1667,6 +1667,9 @@ TEST_F(CrasherTest, seccomp_tombstone_thread_abort) { std::string result; ConsumeFd(std::move(output_fd), &result); + ASSERT_MATCH( + result, + R"(signal 6 \(SIGABRT\))"); ASSERT_BACKTRACE_FRAME(result, "abort"); } diff --git a/debuggerd/libdebuggerd/tombstone.cpp b/debuggerd/libdebuggerd/tombstone.cpp index 375ed8a2c..5a416d643 100644 --- a/debuggerd/libdebuggerd/tombstone.cpp +++ b/debuggerd/libdebuggerd/tombstone.cpp @@ -76,7 +76,7 @@ void engrave_tombstone_ucontext(int tombstone_fd, int proto_fd, uint64_t abort_m threads[target_tid] = ThreadInfo { .registers = std::move(regs), .uid = uid, .tid = target_tid, .thread_name = std::move(thread_name), .pid = pid, .command_line = std::move(command_line), - .selinux_label = std::move(selinux_label), .siginfo = siginfo, + .selinux_label = std::move(selinux_label), .siginfo = siginfo, .signo = siginfo->si_signo, // Only supported on aarch64 for now. #if defined(__aarch64__) .tagged_addr_ctrl = prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0),