debuggerd: fix passing of fdsan_table to crash_dump
Commit aosp/1259140 moved fdsan_table into debugger_process_info, which is populated conditionally. This introduced a bug where the process that receives BIONIC_SIGNAL_DEBUGGER (35) does not propagate the fdsan_table pointer to crash_dump: $ adb shell kill -SIG35 <pid> $ adb logcat -s DEBUG E DEBUG : failed to read fdsan table entry 0: I/O error Fdsan in warn-only mode uses BIONIC_SIGNAL_DEBUGGER[1], so the generated tombstones don't have any fd ownership info. Fix it by calling get_process_info() irrespective of the signal being handled, taking care to preserve the previous behavior of not showing abort messages set by applications in non-fatal dumps. Test: debuggerd_test Test: send SIG35 to arbitrary process and inspect the log and tombstone Test: crasher fdsan_file [1] https://android.googlesource.com/platform/bionic/+/20ad9129e7115417fcd1da922693947580b7f0a6/libc/bionic/fdsan.cpp#166 Change-Id: I76931ca4825e846fc99f26fa590c045130abb850
Loading
Please register or sign in to comment