From bc6a90938426330a76ea1ec29d99ca7fcf46f447 Mon Sep 17 00:00:00 2001 From: Filipe Cabecinhas Date: Tue, 26 May 2015 23:52:21 +0000 Subject: [BitcodeReader] Make sure abbrev records have at least one operand (record code) Bug found with AFL fuzz. llvm-svn: 238265 --- llvm/lib/Bitcode/Reader/BitstreamReader.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'llvm/lib/Bitcode') diff --git a/llvm/lib/Bitcode/Reader/BitstreamReader.cpp b/llvm/lib/Bitcode/Reader/BitstreamReader.cpp index 3b03f4b12b8..2d02549ce4e 100644 --- a/llvm/lib/Bitcode/Reader/BitstreamReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitstreamReader.cpp @@ -282,6 +282,9 @@ void BitstreamCursor::ReadAbbrevRecord() { } else Abbv->Add(BitCodeAbbrevOp(E)); } + + if (Abbv->getNumOperandInfos() == 0) + report_fatal_error("Abbrev record with no operands"); CurAbbrevs.push_back(Abbv); } -- cgit v1.2.3