llvm-project/llvm/lib/Bitcode/Reader
Justin Bogner ae341c6e9b Bitcode: Error out instead of crashing on corrupt metadata
I hit a crash in the bitcode reader on some corrupt input where an
MDString had somehow been attached to an instruction instead of an
MDNode. This input is pretty bogus, but we shouldn't be crashing on bad
input here.

This change adds error handling in all of the places where we
currently have unchecked casts from Metadata to MDNode, which means
we'll error out instead of crashing for that sort of input.

Unfortunately, I don't have tests. Hitting this requires flipping bits
in the input bitcode, and committing corrupt binary files to catch
these cases is a bit too opaque and unmaintainable.

llvm-svn: 263742
2016-03-17 20:12:06 +00:00
..
BitReader.cpp Deprecate a few C APIs. 2015-12-18 23:46:42 +00:00
BitcodeReader.cpp Bitcode: Error out instead of crashing on corrupt metadata 2016-03-17 20:12:06 +00:00
BitstreamReader.cpp Bitcode reader: Inline readAbbreviatedField in readRecord and move the enclosing loop in each case (NFC) 2016-03-07 00:38:09 +00:00
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
LLVMBuild.txt