From c24cc8a9e51d53aa7a2a7c0af3189abe2364dcc7 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Tue, 7 Feb 2017 13:28:36 -0800 Subject: [PATCH] crash_dump: collect open files before dropping caps. /proc//fd is also limited by ptrace_may_access. Test: manual inspection of "debuggerd -b `pidof zygote`" Change-Id: I1a28c21c0438fe8729bd8e041c6b418d6a84c586 --- debuggerd/crash_dump.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/debuggerd/crash_dump.cpp b/debuggerd/crash_dump.cpp index 4e083aec0..288935611 100644 --- a/debuggerd/crash_dump.cpp +++ b/debuggerd/crash_dump.cpp @@ -363,6 +363,12 @@ int main(int argc, char** argv) { LOG(FATAL) << "failed to create backtrace map"; } + // Collect the list of open files. + OpenFilesList open_files; + if (!backtrace) { + populate_open_files_list(target, &open_files); + } + // Drop our capabilities now that we've attached to the threads we care about. drop_capabilities(); @@ -375,10 +381,6 @@ int main(int argc, char** argv) { if (backtrace) { dump_backtrace(output_fd.get(), backtrace_map.get(), target, main_tid, attached_siblings, 0); } else { - // Collect the list of open files. - OpenFilesList open_files; - populate_open_files_list(target, &open_files); - engrave_tombstone(output_fd.get(), backtrace_map.get(), open_files, target, main_tid, attached_siblings, abort_address, fatal_signal ? &amfd_data : nullptr); }