[llvm] r236079 - Check that we have a valid PointerType element type before calling get()
Filipe Cabecinhas
me at filcab.net
Tue Apr 28 19:27:28 PDT 2015
Author: filcab
Date: Tue Apr 28 21:27:28 2015
New Revision: 236079
URL: http://llvm.org/viewvc/llvm-project?rev=236079&view=rev
Log:
Check that we have a valid PointerType element type before calling get()
Same as r236073 but for PointerType.
Bug found with AFL fuzz.
Added:
llvm/trunk/test/Bitcode/Inputs/invalid-pointer-element-type.bc
Modified:
llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
llvm/trunk/test/Bitcode/invalid.test
Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=236079&r1=236078&r2=236079&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Tue Apr 28 21:27:28 2015
@@ -1360,7 +1360,8 @@ std::error_code BitcodeReader::ParseType
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;
Added: llvm/trunk/test/Bitcode/Inputs/invalid-pointer-element-type.bc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/Inputs/invalid-pointer-element-type.bc?rev=236079&view=auto
==============================================================================
Binary files llvm/trunk/test/Bitcode/Inputs/invalid-pointer-element-type.bc (added) and llvm/trunk/test/Bitcode/Inputs/invalid-pointer-element-type.bc Tue Apr 28 21:27:28 2015 differ
Modified: llvm/trunk/test/Bitcode/invalid.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/invalid.test?rev=236079&r1=236078&r2=236079&view=diff
==============================================================================
--- llvm/trunk/test/Bitcode/invalid.test (original)
+++ llvm/trunk/test/Bitcode/invalid.test Tue Apr 28 21:27:28 2015
@@ -103,6 +103,8 @@ RUN: not llvm-dis -disable-output %p/Inp
RUN: FileCheck --check-prefix=ELEMENT-TYPE %s
RUN: not llvm-dis -disable-output %p/Inputs/invalid-vector-element-type.bc 2>&1 | \
RUN: FileCheck --check-prefix=ELEMENT-TYPE %s
+RUN: not llvm-dis -disable-output %p/Inputs/invalid-pointer-element-type.bc 2>&1 | \
+RUN: FileCheck --check-prefix=ELEMENT-TYPE %s
ELEMENT-TYPE: Invalid type
More information about the llvm-commits
mailing list