[llvm] r216005 - Fix a pair of use after free. Should bring the bots back.

David Blaikie dblaikie at gmail.com
Tue Sep 2 14:15:45 PDT 2014


On Tue, Sep 2, 2014 at 2:02 PM, Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

> I wonder if we should add a deleted constructor:
>
>     class StringRef {
>     private:
>       StringRef(std::string &&) LLVM_DELETED;
>     };
>

unlikely:

  std::string src();
  void sink(StringRef);

  int main() {
    sink(src());
  }

I imagine there's a reasonable amount of that going on in the codebase -
though I could be wrong.


>
> > On 2014 Aug 19, at 14:59, Rafael Espindola <rafael.espindola at gmail.com>
> wrote:
> >
> > Author: rafael
> > Date: Tue Aug 19 13:59:14 2014
> > New Revision: 216005
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=216005&view=rev
> > Log:
> > Fix a pair of use after free. Should bring the bots back.
> >
> > Modified:
> >    llvm/trunk/lib/Object/MachOUniversal.cpp
> >
> > Modified: llvm/trunk/lib/Object/MachOUniversal.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/MachOUniversal.cpp?rev=216005&r1=216004&r2=216005&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/lib/Object/MachOUniversal.cpp (original)
> > +++ llvm/trunk/lib/Object/MachOUniversal.cpp Tue Aug 19 13:59:14 2014
> > @@ -72,7 +72,7 @@ MachOUniversalBinary::ObjectForArch::get
> >   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::Ob
> >   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())
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140902/b40ce3d5/attachment.html>


More information about the llvm-commits mailing list