LibDriver: Reject inputs that are not COFF objects or bitcode files.

Fixes PR31372.

Differential Revision: https://reviews.llvm.org/D27776

llvm-svn: 289726
diff --git a/llvm/lib/LibDriver/LibDriver.cpp b/llvm/lib/LibDriver/LibDriver.cpp
index ea6d921..fa9f02c 100644
--- a/llvm/lib/LibDriver/LibDriver.cpp
+++ b/llvm/lib/LibDriver/LibDriver.cpp
@@ -143,6 +143,13 @@
       });
       return 1;
     }
+    sys::fs::file_magic Magic =
+        sys::fs::identify_magic(MOrErr->Buf->getBuffer());
+    if (Magic != sys::fs::file_magic::coff_object &&
+        Magic != sys::fs::file_magic::bitcode) {
+      llvm::errs() << Arg->getValue() << ": not a COFF object or bitcode file\n";
+      return 1;
+    }
     Members.emplace_back(std::move(*MOrErr));
   }