diff --git a/debuggerd/libdebuggerd/scudo.cpp b/debuggerd/libdebuggerd/scudo.cpp index e0ef515bd..cff43f8d5 100644 --- a/debuggerd/libdebuggerd/scudo.cpp +++ b/debuggerd/libdebuggerd/scudo.cpp @@ -41,8 +41,6 @@ ScudoCrashData::ScudoCrashData(unwindstack::Memory* process_memory, return; } - auto stack_depot = AllocAndReadFully(process_memory, process_info.scudo_stack_depot, - process_info.scudo_stack_depot_size); auto region_info = AllocAndReadFully(process_memory, process_info.scudo_region_info, __scudo_get_region_info_size()); std::unique_ptr ring_buffer; @@ -50,7 +48,12 @@ ScudoCrashData::ScudoCrashData(unwindstack::Memory* process_memory, ring_buffer = AllocAndReadFully(process_memory, process_info.scudo_ring_buffer, process_info.scudo_ring_buffer_size); } - if (!stack_depot || !region_info) { + std::unique_ptr stack_depot; + if (process_info.scudo_stack_depot_size != 0) { + stack_depot = AllocAndReadFully(process_memory, process_info.scudo_stack_depot, + process_info.scudo_stack_depot_size); + } + if (!region_info) { return; }