(original) (raw)
Hi Geoff,
Thanks for catching that. I think your fix is the right one. I have committed it in r342783.
Cheers,
Lang.
On Thu, Sep 20, 2018 at 12:29 PM Alex Denisov <1101.debian@gmail.com> wrote:
/cc Lang
\> On 18\. Sep 2018, at 10:36, Geoff Levner via llvm-dev <llvm-dev@lists.llvm.org> wrote:
\>
\> In certain circumstances, RTDyldObjectLinkingLayer dereferences a null
\> pointer. Specifically, that happens if you add a linking object which,
\> for some reason, is never finalized, and you specify a function to be
\> called when objects are freed. Admittedly, that must not happen very
\> often, but it can happen in our application, causing it to crash.
\>
\> Might I suggest the following patch?
\>
\> Geoff
\>
\> --- RTDyldObjectLinkingLayer.h (revision 342448)
\> +++ RTDyldObjectLinkingLayer.h (working copy)
\> @@ -175,7 +175,7 @@
\> }
\>
\> \~ConcreteLinkedObject() override {
\> - if (this->Parent.NotifyFreed)
\> + if (this->Parent.NotifyFreed && ObjForNotify.getBinary())
\> this->Parent.NotifyFreed(K, \*ObjForNotify.getBinary());
\>
\> MemMgr->deregisterEHFrames();
\> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\> LLVM Developers mailing list
\> llvm-dev@lists.llvm.org
\> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev