[Support/PathV2] Fix out of bounds access in identify_magic when the file is empty.
authorMichael J. Spencer <bigcheesegs@gmail.com>
Tue, 19 Jun 2012 05:29:57 +0000 (05:29 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Tue, 19 Jun 2012 05:29:57 +0000 (05:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158704 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/PathV2.cpp

index e2a69a650db8ca12cb8eb94ed8a4816e83b566b0..46571c049f12d3be1e48026c85dbd872ba95e9ff 100644 (file)
@@ -744,6 +744,8 @@ error_code has_magic(const Twine &path, const Twine &magic, bool &result) {
 
 /// @brief Identify the magic in magic.
 file_magic identify_magic(StringRef magic) {
+  if (magic.size() < 4)
+    return file_magic::unknown;
   switch ((unsigned char)magic[0]) {
     case 0xDE:  // 0x0B17C0DE = BC wraper
       if (magic[1] == (char)0xC0 && magic[2] == (char)0x17 &&