From 28d7cbdd426311c1b13b648a370212f130d8dff0 Mon Sep 17 00:00:00 2001 From: Sterling Augustine Date: Mon, 27 Jul 2020 13:54:54 -0700 Subject: [PATCH] Check for tombstone as very first entry in the line table. This is a folow up to https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2317730 and handles the additional case where there are no entries in the line table at all. Change-Id: I100c5d0891e7dc7088d58da11240d7df3a6c48d9 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2321300 Reviewed-by: Mark Mentovai --- src/common/dwarf_cu_to_module.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/common/dwarf_cu_to_module.cc b/src/common/dwarf_cu_to_module.cc index c4eb3c50..a5bc7d6c 100644 --- a/src/common/dwarf_cu_to_module.cc +++ b/src/common/dwarf_cu_to_module.cc @@ -1089,6 +1089,11 @@ void DwarfCUToModule::AssignLinesToFunctions() { return; } + // Some dwarf producers handle linker-removed functions by using -1 as a + // tombstone in the line table. So the end marker can be -1. + if (current == Module::kMaxAddress) + return; + while (range || line) { // This loop has two invariants that hold at the top. //