From e8dc1d219f4b461f29e11ad8fe0e463c6dfdb08b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 14 Jan 2023 15:04:34 -0500 Subject: Windows: Fix potentially insecure library loading --- src/win.c | 6 ++++-- src/win_vulkan.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/win.c b/src/win.c index e9c621e..33b37b6 100644 --- a/src/win.c +++ b/src/win.c @@ -167,7 +167,8 @@ puglWinGetMonitor(const PuglView* const view) static double puglWinGetViewScaleFactor(const PuglView* const view) { - const HMODULE shcore = LoadLibrary("Shcore.dll"); + const HMODULE shcore = + LoadLibraryEx("Shcore.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); if (!shcore) { return 1.0; } @@ -201,7 +202,8 @@ puglInitWorldInternals(PuglWorldType type, PuglWorldFlags PUGL_UNUSED(flags)) } if (type == PUGL_PROGRAM) { - HMODULE user32 = LoadLibrary("user32.dll"); + HMODULE user32 = + LoadLibraryEx("user32.dll", NULL, LOAD_LIBRARY_SEARCH_SYSTEM32); if (user32) { PFN_SetProcessDPIAware SetProcessDPIAware = (PFN_SetProcessDPIAware)GetProcAddress(user32, "SetProcessDPIAware"); diff --git a/src/win_vulkan.c b/src/win_vulkan.c index fa686ed..ddd3fbe 100644 --- a/src/win_vulkan.c +++ b/src/win_vulkan.c @@ -29,7 +29,8 @@ puglNewVulkanLoader(PuglWorld* PUGL_UNUSED(world)) return NULL; } - if (!(loader->libvulkan = LoadLibrary("vulkan-1.dll"))) { + const DWORD flags = LOAD_LIBRARY_SEARCH_DEFAULT_DIRS; + if (!(loader->libvulkan = LoadLibraryEx("vulkan-1.dll", NULL, flags))) { free(loader); return NULL; } -- cgit v1.2.1