mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 17:59:46 +02:00
GT-2939 closes #690: handle empty DWARF compilation units.
Pulled-from: FergoFrog <45412+fergofrog@users.noreply.github.com>
This commit is contained in:
parent
ed4019fcbe
commit
f8f694ad4e
1 changed files with 9 additions and 0 deletions
|
@ -148,6 +148,7 @@ public class DWARFCompilationUnit {
|
|||
else {
|
||||
format = DWARF_32;
|
||||
}
|
||||
|
||||
long endOffset = (debugInfoBR.getPointerIndex() + length);
|
||||
short version = debugInfoBR.readNextShort();
|
||||
long abbreviationOffset = DWARFUtil.readOffsetByDWARFformat(debugInfoBR, format);
|
||||
|
@ -158,6 +159,14 @@ public class DWARFCompilationUnit {
|
|||
throw new DWARFException(
|
||||
"Only DWARF version 2, 3, or 4 information is currently supported.");
|
||||
}
|
||||
if (firstDIEOffset > endOffset) {
|
||||
throw new IOException("Invalid length " + (endOffset - startOffset) +
|
||||
" for DWARF Compilation Unit at 0x" + Long.toHexString(startOffset));
|
||||
}
|
||||
else if (firstDIEOffset == endOffset) {
|
||||
// silently skip this empty compunit
|
||||
return null;
|
||||
}
|
||||
|
||||
debugAbbrBR.setPointerIndex(abbreviationOffset);
|
||||
Map<Integer, DWARFAbbreviation> abbrMap =
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue