[llvm-dev] suggested bug fix in RTDyldObjectLinkingLayer

Geoff Levner via llvm-dev llvm-dev at lists.llvm.org
Tue Sep 18 01:36:12 PDT 2018


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


More information about the llvm-dev mailing list