Module: wine Branch: master Commit: ac7f96f0fbdd3f074d2b0cfa32abd72a50d7a5d2 URL: https://gitlab.winehq.org/wine/wine/-/commit/ac7f96f0fbdd3f074d2b0cfa32abd72...
Author: Hans Leidekker hans@codeweavers.com Date: Fri Jul 12 09:17:19 2024 +0200
odbc32: Use LoadLibraryExW() instead of LoadLibraryW().
---
dlls/odbc32/proxyodbc.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index c78c76103eb..2b7bf1c4236 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -338,32 +338,20 @@ static const struct win32_funcs *load_driver( const WCHAR *filename ) { HMODULE module; struct win32_driver *driver; - WCHAR *ptr, *path = wcsdup( filename ); + WCHAR *ptr; UINT32 i;
for (i = 0; i < win32_drivers.count; i++) { - if (!wcsicmp( filename, win32_drivers.drivers[i]->filename )) - { - free( path ); - return &win32_drivers.drivers[i]->funcs; - } + if (!wcsicmp( filename, win32_drivers.drivers[i]->filename )) return &win32_drivers.drivers[i]->funcs; }
- if (!(driver = malloc( sizeof(*driver) + (wcslen(filename) + 1) * sizeof(WCHAR) ))) - { - free( path ); - return NULL; - } + if (!(driver = malloc( sizeof(*driver) + (wcslen(filename) + 1) * sizeof(WCHAR) ))) return NULL; ptr = (WCHAR *)(driver + 1); wcscpy( ptr, filename ); driver->filename = ptr;
- if ((ptr = wcsrchr( path, '\' )) || (ptr = wcsrchr( path, '/' ))) *ptr = 0; - SetDllDirectoryW( path ); - module = LoadLibraryW( filename ); - SetDllDirectoryW( NULL ); - free( path ); + module = LoadLibraryExW( filename, NULL, LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_SEARCH_DEFAULT_DIRS ); if (!module) { free( driver );