diff options
author | Simon Rozman <simon@rozman.si> | 2020-10-30 06:06:06 +0100 |
---|---|---|
committer | Simon Rozman <simon@rozman.si> | 2020-10-31 10:41:47 +0100 |
commit | f389fd5629068083807b43727c823f51b6aebc9d (patch) | |
tree | 36f4d1189705ed14585e5cbba47a13bbf95a3f81 | |
parent | api: fix zero-parameter C function prototypes (diff) | |
download | wintun-f389fd5629068083807b43727c823f51b6aebc9d.tar.xz wintun-f389fd5629068083807b43727c823f51b6aebc9d.zip |
api: use C locale for adapter and pool name case-insensitive comparing
Reported-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Simon Rozman <simon@rozman.si>
-rw-r--r-- | api/adapter.c | 17 | ||||
-rw-r--r-- | api/adapter.h | 3 | ||||
-rw-r--r-- | api/api.c | 1 |
3 files changed, 4 insertions, 17 deletions
diff --git a/api/adapter.c b/api/adapter.c index e229249..a51d437 100644 --- a/api/adapter.c +++ b/api/adapter.c @@ -21,7 +21,6 @@ # error Unsupported architecture #endif -static _locale_t Locale; static USHORT NativeMachine = IMAGE_FILE_PROCESS; WINTUN_STATUS @@ -330,8 +329,6 @@ AdapterDeleteAllOurs(void) void AdapterInit(void) { - Locale = _wcreate_locale(LC_ALL, L""); - #if defined(_M_IX86) || defined(_M_ARM) typedef BOOL(WINAPI * IsWow64Process2_t)( _In_ HANDLE hProcess, _Out_ USHORT * pProcessMachine, _Out_opt_ USHORT * pNativeMachine); @@ -349,12 +346,6 @@ AdapterInit(void) #endif } -void -AdapterCleanup(void) -{ - _free_locale(Locale); -} - static BOOL CheckReboot(_In_ HDEVINFO DevInfo, _In_ SP_DEVINFO_DATA *DevInfoData) { @@ -481,14 +472,14 @@ IsPoolMember( } WCHAR PoolDeviceTypeName[MAX_POOL_DEVICE_TYPE]; GetPoolDeviceTypeName(Pool, PoolDeviceTypeName); - if (!_wcsicmp_l(FriendlyName, PoolDeviceTypeName, Locale) || !_wcsicmp_l(DeviceDesc, PoolDeviceTypeName, Locale)) + if (!_wcsicmp(FriendlyName, PoolDeviceTypeName) || !_wcsicmp(DeviceDesc, PoolDeviceTypeName)) { *IsMember = TRUE; goto cleanupFriendlyName; } RemoveNumberedSuffix(FriendlyName, FriendlyName); RemoveNumberedSuffix(DeviceDesc, DeviceDesc); - if (!_wcsicmp_l(FriendlyName, PoolDeviceTypeName, Locale) || !_wcsicmp_l(DeviceDesc, PoolDeviceTypeName, Locale)) + if (!_wcsicmp(FriendlyName, PoolDeviceTypeName) || !_wcsicmp(DeviceDesc, PoolDeviceTypeName)) { *IsMember = TRUE; goto cleanupFriendlyName; @@ -630,10 +621,10 @@ WintunGetAdapter( if (NciGetConnectionName(&CfgInstanceID, Name2, sizeof(Name2), NULL) != ERROR_SUCCESS) continue; Name2[_countof(Name2) - 1] = 0; - if (_wcsicmp_l(Name, Name2, Locale)) + if (_wcsicmp(Name, Name2)) { RemoveNumberedSuffix(Name2, Name2); - if (_wcsicmp_l(Name, Name2, Locale)) + if (_wcsicmp(Name, Name2)) continue; } diff --git a/api/adapter.h b/api/adapter.h index 04a9983..7ac67ad 100644 --- a/api/adapter.h +++ b/api/adapter.h @@ -75,9 +75,6 @@ AdapterDeleteAllOurs(void); void AdapterInit(void); -void -AdapterCleanup(void); - /** * Wintun adapter descriptor. */ @@ -65,7 +65,6 @@ DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved) case DLL_PROCESS_DETACH: NciCleanup(); NamespaceCleanup(); - AdapterCleanup(); #ifndef _DEBUG LocalFree(SecurityAttributesSystem.lpSecurityDescriptor); #endif |