[BitcodeReader] Check vector size before trying to create a VectorType
[oota-llvm.git] / lib / Bitcode / Reader / BitcodeReader.cpp
index 4044ac80f20330b3de2a72881f5145269b097b5f..9e5e46aae0b05d0699028bcca5552036fd48f67f 100644 (file)
@@ -1497,6 +1497,8 @@ std::error_code BitcodeReader::ParseTypeTableBody() {
     case bitc::TYPE_CODE_VECTOR:    // VECTOR: [numelts, eltty]
       if (Record.size() < 2)
         return Error("Invalid record");
+      if (Record[0] == 0)
+        return Error("Invalid vector length");
       ResultTy = getTypeByID(Record[1]);
       if (!ResultTy || !StructType::isValidElementType(ResultTy))
         return Error("Invalid type");