# HG changeset patch # User Sebastien Jodogne # Date 1584704261 -3600 # Node ID 626d5f4a5afb66c7ccf634f5443321af601592cc # Parent 7f4a75093a6afebb357431182f42a173efe354d0 disable RTLD_DEEPBIND if loading plugins diff -r 7f4a75093a6a -r 626d5f4a5afb Core/SharedLibrary.cpp --- a/Core/SharedLibrary.cpp Thu Mar 19 10:23:29 2020 +0100 +++ b/Core/SharedLibrary.cpp Fri Mar 20 12:37:41 2020 +0100 @@ -62,14 +62,19 @@ } #elif defined(__linux__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__FreeBSD_kernel__) || defined(__FreeBSD__) || defined(__OpenBSD__) - + /** * "RTLD_LOCAL" is the default, and is only present to be * explicit. "RTLD_DEEPBIND" was added in Orthanc 1.6.0, in order * to avoid crashes while loading plugins from the LSB binaries of * the Orthanc core. + * + * BUT this had no effect, and this results in a crash if loading + * the Python 2.7 plugin => We disabled it again in Orthanc 1.6.1. **/ -#if defined(RTLD_DEEPBIND) // This is a GNU extension + +#if 0 // && defined(RTLD_DEEPBIND) // This is a GNU extension + // Disabled in Orthanc 1.6.1 handle_ = ::dlopen(path_.c_str(), RTLD_NOW | RTLD_LOCAL | RTLD_DEEPBIND); #else handle_ = ::dlopen(path_.c_str(), RTLD_NOW | RTLD_LOCAL);