[SymbolDumper] Validate the string table offset before using it

llvm-svn: 271142
This commit is contained in:
David Majnemer 2016-05-28 19:45:56 +00:00
parent 0042e20996
commit b343310b4f
1 changed files with 6 additions and 5 deletions

View File

@ -610,11 +610,12 @@ void CVSymbolDumperImpl::visitDefRangeSym(SymbolKind Kind,
if (ObjDelegate) {
StringRef StringTable = ObjDelegate->getStringTable();
if (!StringTable.empty()) {
W.printString(
"Program",
StringTable.drop_front(DefRange.Header.Program).split('\0').first);
}
auto ProgramStringTableOffset = DefRange.Header.Program;
if (ProgramStringTableOffset >= StringTable.size())
return parseError();
StringRef Program =
StringTable.drop_front(ProgramStringTableOffset).split('\0').first;
W.printString("Program", Program);
}
printLocalVariableAddrRange(DefRange.Header.Range,
DefRange.getRelocationOffset());