Fix nullptr dereference during sort.
Add new unit test that will crash without this fix.
Bug: 78900050
Test: Ran unit tests.
Change-Id: I73e1b89e965a7b399822c3a6f25cbc70d2d355e2
diff --git a/libc/malloc_debug/PointerData.cpp b/libc/malloc_debug/PointerData.cpp
index f811a5e..85139e6 100644
--- a/libc/malloc_debug/PointerData.cpp
+++ b/libc/malloc_debug/PointerData.cpp
@@ -392,10 +392,12 @@
FrameInfoType* b_frame = b.frame_info;
if (a_frame == nullptr && b_frame != nullptr) {
return false;
- }
- if (a_frame != nullptr && b_frame == nullptr) {
+ } else if (a_frame != nullptr && b_frame == nullptr) {
return true;
+ } else if (a_frame == nullptr && b_frame == nullptr) {
+ return a.pointer < b.pointer;
}
+
// Put the pointers with longest backtrace first.
if (a_frame->frames.size() != b_frame->frames.size()) {
return a_frame->frames.size() > b_frame->frames.size();