Ensure we handle filename == NULL in dlopen correctly. Closes #1058

This commit is contained in:
baldurk
2018-07-31 14:37:38 +01:00
parent df1a494fa7
commit 3d519698e6
2 changed files with 5 additions and 2 deletions
+2 -2
View File
@@ -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);
+3
View File
@@ -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);