Check that we have a valid PointerType element type before calling get()

Same as r236073 but for PointerType.

Bug found with AFL fuzz.

llvm-svn: 236079
This commit is contained in:
Filipe Cabecinhas
2015-04-29 02:27:28 +00:00
parent 52d42c725a
commit d8a1bcd0ad
3 changed files with 4 additions and 1 deletions

View File

@@ -1360,7 +1360,8 @@ std::error_code BitcodeReader::ParseTypeTableBody() {
if (Record.size() == 2)
AddressSpace = Record[1];
ResultTy = getTypeByID(Record[0]);
if (!ResultTy)
if (!ResultTy ||
!PointerType::isValidElementType(ResultTy))
return Error("Invalid type");
ResultTy = PointerType::get(ResultTy, AddressSpace);
break;