summaryrefslogtreecommitdiff
path: root/platform/windows
diff options
context:
space:
mode:
authordjgaspa <djgaspa@gmail.com>2018-01-26 11:48:20 +0100
committerdjgaspa <djgaspa@gmail.com>2018-01-26 12:30:02 +0100
commit18e66a28bcda227e212d43bebaf09bd8ad34d3f2 (patch)
treec1c001e8f14eda263ffa5064e012586650a88f28 /platform/windows
parenta98e9496eb71554656c7c1eed9a69d20aed9886c (diff)
Fix remove_dll_directory crash when cookie is null
Diffstat (limited to 'platform/windows')
-rw-r--r--platform/windows/os_windows.cpp4
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);
}