Apply patch for use-after-free in InlineAsm constant handling,
authorDale Johannesen <dalej@apple.com>
Tue, 2 Nov 2010 17:59:27 +0000 (17:59 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 2 Nov 2010 17:59:27 +0000 (17:59 +0000)
PR 8522 / 8616046.  Test reduction, analysis and patch by Tim Deegan!
(However, review by someone who understands the classes here better
is welcome.  John Krum will return!)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118030 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/InlineAsm.cpp

index d951a29f43c5318a2e27b6f12ac9430419cd451c..e4f99f09a5c2f97f41d695593715a12eb3b58c71 100644 (file)
@@ -47,6 +47,7 @@ InlineAsm::InlineAsm(const PointerType *Ty, const std::string &asmString,
 }
 
 void InlineAsm::destroyConstant() {
+  getRawType()->getContext().pImpl->InlineAsms.remove(this);
   delete this;
 }