diff options
author | djgaspa <djgaspa@gmail.com> | 2018-01-26 11:48:20 +0100 |
---|---|---|
committer | djgaspa <djgaspa@gmail.com> | 2018-01-26 12:30:02 +0100 |
commit | 18e66a28bcda227e212d43bebaf09bd8ad34d3f2 (patch) | |
tree | c1c001e8f14eda263ffa5064e012586650a88f28 /platform/windows | |
parent | a98e9496eb71554656c7c1eed9a69d20aed9886c (diff) |
Fix remove_dll_directory crash when cookie is null
Diffstat (limited to 'platform/windows')
-rw-r--r-- | platform/windows/os_windows.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 9e22e8aaac..43f2a5cf7d 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -1655,7 +1655,7 @@ Error OS_Windows::open_dynamic_library(const String p_path, void *&p_library_han PRemoveDllDirectory remove_dll_directory = (PRemoveDllDirectory)GetProcAddress(GetModuleHandle("kernel32.dll"), "RemoveDllDirectory"); bool has_dll_directory_api = ((add_dll_directory != NULL) && (remove_dll_directory != NULL)); - DLL_DIRECTORY_COOKIE cookie; + DLL_DIRECTORY_COOKIE cookie = NULL; if (p_also_set_library_path && has_dll_directory_api) { cookie = add_dll_directory(path.get_base_dir().c_str()); @@ -1663,7 +1663,7 @@ Error OS_Windows::open_dynamic_library(const String p_path, void *&p_library_han p_library_handle = (void *)LoadLibraryExW(path.c_str(), NULL, (p_also_set_library_path && has_dll_directory_api) ? LOAD_LIBRARY_SEARCH_DEFAULT_DIRS : 0); - if (p_also_set_library_path && has_dll_directory_api) { + if (cookie) { remove_dll_directory(cookie); } |