diff --git a/renderdoc/os/posix/android/android_hook.cpp b/renderdoc/os/posix/android/android_hook.cpp index d5de0106e..a8754efec 100644 --- a/renderdoc/os/posix/android/android_hook.cpp +++ b/renderdoc/os/posix/android/android_hook.cpp @@ -214,7 +214,7 @@ HookingInfo &GetHookInfo() void *intercept_dlopen(const char *filename, int flag) { - if(GetHookInfo().IsLibHook(filename)) + if(filename && GetHookInfo().IsLibHook(std::string(filename))) return dlopen(RENDERDOC_ANDROID_LIBRARY, flag); return NULL; @@ -420,7 +420,7 @@ uint64_t suppressTLS = 0; void process_dlopen(const char *filename, int flag) { - if(!GetHookInfo().IsHooked(filename)) + if(filename && !GetHookInfo().IsHooked(std::string(filename))) { HOOK_DEBUG_PRINT("iterating after %s", filename); dl_iterate_phdr(dl_iterate_callback, NULL); diff --git a/renderdoc/os/posix/linux/linux_hook.cpp b/renderdoc/os/posix/linux/linux_hook.cpp index 71571101e..f7345c09f 100644 --- a/renderdoc/os/posix/linux/linux_hook.cpp +++ b/renderdoc/os/posix/linux/linux_hook.cpp @@ -85,6 +85,9 @@ void plthook_lib(void *handle) void *intercept_dlopen(const char *filename, int flag, void *ret) { + if(filename == NULL) + return ret; + if(flag & RTLD_DEEPBIND) plthook_lib(ret);