Fix a pair of use after free. Should bring the bots back.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 19 Aug 2014 18:59:14 +0000 (18:59 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 19 Aug 2014 18:59:14 +0000 (18:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216005 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Object/MachOUniversal.cpp

index 8d24403d03380bfbaa5a752eeea594353ed01e82..3deef4b7f654348326e521ece09f58be0d6deaf0 100644 (file)
@@ -72,7 +72,7 @@ MachOUniversalBinary::ObjectForArch::getAsObjectFile() const {
   if (Parent) {
     StringRef ParentData = Parent->getData();
     StringRef ObjectData = ParentData.substr(Header.offset, Header.size);
-    StringRef ObjectName = Parent->getFileName().str();
+    StringRef ObjectName = Parent->getFileName();
     MemoryBufferRef ObjBuffer(ObjectData, ObjectName);
     return ObjectFile::createMachOObjectFile(ObjBuffer);
   }
@@ -84,7 +84,7 @@ std::error_code MachOUniversalBinary::ObjectForArch::getAsArchive(
   if (Parent) {
     StringRef ParentData = Parent->getData();
     StringRef ObjectData = ParentData.substr(Header.offset, Header.size);
-    std::string ObjectName = Parent->getFileName().str();
+    StringRef ObjectName = Parent->getFileName();
     MemoryBufferRef ObjBuffer(ObjectData, ObjectName);
     ErrorOr<std::unique_ptr<Archive>> Obj = Archive::create(ObjBuffer);
     if (std::error_code EC = Obj.getError())