diff options
author | Filipe Cabecinhas <me@filcab.net> | 2015-04-15 08:48:08 +0000 |
---|---|---|
committer | Filipe Cabecinhas <me@filcab.net> | 2015-04-15 08:48:08 +0000 |
commit | 7dc896fccea25fd48d1bf44228ea4848ff8ebcfa (patch) | |
tree | bc21e55ba804f5c4bca08c589fda48bbdd05aa33 /llvm/lib/Bitcode/Reader/BitstreamReader.cpp | |
parent | c640ff63e236d48d90a29f548799ea8342a7aa04 (diff) | |
download | bcm5719-llvm-7dc896fccea25fd48d1bf44228ea4848ff8ebcfa.tar.gz bcm5719-llvm-7dc896fccea25fd48d1bf44228ea4848ff8ebcfa.zip |
Verify sizes when trying to read a VBR
Also added an assert to ReadVBR64.
llvm-svn: 234984
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitstreamReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitstreamReader.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitstreamReader.cpp b/llvm/lib/Bitcode/Reader/BitstreamReader.cpp index beaaf7a7d66..6e3bea1e87b 100644 --- a/llvm/lib/Bitcode/Reader/BitstreamReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitstreamReader.cpp @@ -62,6 +62,8 @@ static uint64_t readAbbreviatedField(BitstreamCursor &Cursor, case BitCodeAbbrevOp::Fixed: return Cursor.Read((unsigned)Op.getEncodingData()); case BitCodeAbbrevOp::VBR: + if ((unsigned)Op.getEncodingData() > 64) + report_fatal_error("Invalid record"); return Cursor.ReadVBR64((unsigned)Op.getEncodingData()); case BitCodeAbbrevOp::Char6: return BitCodeAbbrevOp::DecodeChar6(Cursor.Read(6)); |