[bitcode reader] Fix an assert on invalid type tables

Bug found with afl-fuzz

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Filipe Cabecinhas 2015-01-30 10:57:58 +00:00
parent e21839b377
commit 8cf149dbad
2 changed files with 3 additions and 1 deletions

View File

@ -1095,8 +1095,10 @@ std::error_code BitcodeReader::ParseTypeTableBody() {
if (NumRecords >= TypeList.size())
return Error("Invalid TYPE table");
if (TypeList[NumRecords])
return Error(
"Invalid TYPE table: Only named structs can be forward referenced");
assert(ResultTy && "Didn't read a type?");
assert(!TypeList[NumRecords] && "Already read type?");
TypeList[NumRecords++] = ResultTy;
}
}

Binary file not shown.