Fix corrupted symbol file due to malformed INLINE/INLINE_ORIGIN records

- Ignore DW_TAG_inlined_subroutine with empty range.
- Don't stop parsing after parsing malformed INLINE/INLINE_ORIGIN
records, because reports can still be generated without them but won't
have inlined frames.

Bug: 1190878
Change-Id: I445105ad06b9146268f7d064e85b0d162c3f2a39
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/3321166
Reviewed-by: Joshua Peraza <jperaza@chromium.org>
This commit is contained in:
Zequan Wu 2021-12-07 12:37:07 -08:00 committed by Joshua Peraza
parent 0ae29c99d1
commit 647aa17a7a
2 changed files with 9 additions and 2 deletions

View file

@ -652,6 +652,11 @@ void DwarfCUToModule::InlineHandler::Finish() {
}
}
// Ignore DW_TAG_inlined_subroutine with empty range.
if (ranges.empty()) {
return;
}
// Every DW_TAG_inlined_subroutine should have a DW_AT_abstract_origin.
assert(specification_offset_ != 0);