suggested bug fix in RTDyldObjectLinkingLayer

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?


--- 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());


/cc Lang

Hi Geoff,

Thanks for catching that. I think your fix is the right one. I have committed it in r342783.