mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 04:06:14 +00:00
Linux: Disable RTLD_DEEPBIND mode for dlopen() in sanitizer builds
This commit is contained in:
parent
dcbee437f7
commit
a039d0b61a
@ -85,6 +85,12 @@
|
|||||||
#define RTLD_DEEPBIND 0
|
#define RTLD_DEEPBIND 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SANITIZERS_ENABLED
|
||||||
|
#define GODOT_DLOPEN_MODE RTLD_NOW | RTLD_DEEPBIND
|
||||||
|
#else
|
||||||
|
#define GODOT_DLOPEN_MODE RTLD_NOW
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MACOS_ENABLED) || (defined(__ANDROID_API__) && __ANDROID_API__ >= 28)
|
#if defined(MACOS_ENABLED) || (defined(__ANDROID_API__) && __ANDROID_API__ >= 28)
|
||||||
// Random location for getentropy. Fitting.
|
// Random location for getentropy. Fitting.
|
||||||
#include <sys/random.h>
|
#include <sys/random.h>
|
||||||
@ -650,7 +656,7 @@ Error OS_Unix::open_dynamic_library(const String p_path, void *&p_library_handle
|
|||||||
path = get_executable_path().get_base_dir().path_join("../lib").path_join(p_path.get_file());
|
path = get_executable_path().get_base_dir().path_join("../lib").path_join(p_path.get_file());
|
||||||
}
|
}
|
||||||
|
|
||||||
p_library_handle = dlopen(path.utf8().get_data(), RTLD_NOW | RTLD_DEEPBIND);
|
p_library_handle = dlopen(path.utf8().get_data(), GODOT_DLOPEN_MODE);
|
||||||
ERR_FAIL_NULL_V_MSG(p_library_handle, ERR_CANT_OPEN, vformat("Can't open dynamic library: %s. Error: %s.", p_path, dlerror()));
|
ERR_FAIL_NULL_V_MSG(p_library_handle, ERR_CANT_OPEN, vformat("Can't open dynamic library: %s. Error: %s.", p_path, dlerror()));
|
||||||
|
|
||||||
if (r_resolved_path != nullptr) {
|
if (r_resolved_path != nullptr) {
|
||||||
|
Loading…
Reference in New Issue
Block a user