dwarfdump: Add some error handling for DWP index sections of the wrong size
llvm-svn: 252843
This commit is contained in:
parent
5b9bf49c6f
commit
6e9c4f7f0d
|
@ -16,6 +16,8 @@ namespace llvm {
|
|||
|
||||
bool DWARFUnitIndex::Header::parse(DataExtractor IndexData,
|
||||
uint32_t *OffsetPtr) {
|
||||
if (!IndexData.isValidOffsetForDataOfSize(*OffsetPtr, 16))
|
||||
return false;
|
||||
Version = IndexData.getU32(OffsetPtr);
|
||||
NumColumns = IndexData.getU32(OffsetPtr);
|
||||
NumUnits = IndexData.getU32(OffsetPtr);
|
||||
|
@ -32,6 +34,11 @@ bool DWARFUnitIndex::parse(DataExtractor IndexData) {
|
|||
if (!Header.parse(IndexData, &Offset))
|
||||
return false;
|
||||
|
||||
if (!IndexData.isValidOffsetForDataOfSize(
|
||||
Offset, Header.NumBuckets * (8 + 4) +
|
||||
(2 * Header.NumUnits + 1) * 4 * Header.NumColumns))
|
||||
return false;
|
||||
|
||||
Rows = llvm::make_unique<HashRow[]>(Header.NumBuckets);
|
||||
auto Contribs =
|
||||
llvm::make_unique<HashRow::SectionContribution *[]>(Header.NumUnits);
|
||||
|
|
Loading…
Reference in New Issue