From 5b6ffddf528042caedfc59a2cd68ed42f99e4a73 Mon Sep 17 00:00:00 2001 From: Lubos Dolezel Date: Mon, 28 Apr 2014 23:34:34 +0200 Subject: [PATCH] Do not generate trampolines for dlopen and dlclose --- src/libdyld/Trampoline.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libdyld/Trampoline.cpp b/src/libdyld/Trampoline.cpp index df72a23de..765667222 100644 --- a/src/libdyld/Trampoline.cpp +++ b/src/libdyld/Trampoline.cpp @@ -97,6 +97,10 @@ void* TrampolineMgr::generate(void* targetAddr, const char* name) { if ((targetAddr > m_pMem && targetAddr < m_pMem+m_nMax) || !isExecutable(targetAddr)) return targetAddr; // will not create a trampoline for a trampoline + if (strcmp(name, "dlopen") == 0) + return targetAddr; // trampolines break RPATH resolution in dlopen + if (strcmp(name, "dlsym") == 0) + return targetAddr; // trampolines break RTLD_SELF AddrEntry e = { name, name, targetAddr }; if (m_nNext >= m_nMax) -- 2.51.2