Fix a double free in llvm::getBitcodeTargetTriple.
[oota-llvm.git] / lib / Bitcode / Reader / BitcodeReader.cpp
index 1b88e5f5fa577feaca6fb5ec38e17d095be57f28..a614ec37cf6787188838f091606a5ba439b66ded 100644 (file)
@@ -3588,7 +3588,7 @@ ErrorOr<Module *> llvm::parseBitcodeFile(MemoryBufferRef Buffer,
 std::string llvm::getBitcodeTargetTriple(MemoryBufferRef Buffer,
                                          LLVMContext &Context) {
   std::unique_ptr<MemoryBuffer> Buf = MemoryBuffer::getMemBuffer(Buffer, false);
-  auto R = llvm::make_unique<BitcodeReader>(Buf.get(), Context);
+  auto R = llvm::make_unique<BitcodeReader>(Buf.release(), Context);
   ErrorOr<std::string> Triple = R->parseTriple();
   if (Triple.getError())
     return "";