api: relax IsPoolMember estimation
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
0d214d7254
commit
fc348f519b
@ -471,40 +471,27 @@ static BOOL
|
|||||||
IsPoolMember(_In_z_ const WCHAR *Pool, _In_ HDEVINFO DevInfo, _In_ SP_DEVINFO_DATA *DevInfoData)
|
IsPoolMember(_In_z_ const WCHAR *Pool, _In_ HDEVINFO DevInfo, _In_ SP_DEVINFO_DATA *DevInfoData)
|
||||||
{
|
{
|
||||||
WCHAR *DeviceDesc = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_DEVICEDESC);
|
WCHAR *DeviceDesc = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_DEVICEDESC);
|
||||||
if (!DeviceDesc)
|
WCHAR *FriendlyName = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_FRIENDLYNAME);
|
||||||
{
|
|
||||||
LOG(WINTUN_LOG_ERR, L"Failed to get adapter description");
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
DWORD LastError = ERROR_SUCCESS;
|
DWORD LastError = ERROR_SUCCESS;
|
||||||
BOOL Ret = FALSE;
|
BOOL Ret = FALSE;
|
||||||
WCHAR *FriendlyName = GetDeviceRegistryString(DevInfo, DevInfoData, SPDRP_FRIENDLYNAME);
|
|
||||||
if (!FriendlyName)
|
|
||||||
{
|
|
||||||
LastError = LOG(WINTUN_LOG_ERR, L"Failed to get adapter friendly name");
|
|
||||||
goto cleanupDeviceDesc;
|
|
||||||
}
|
|
||||||
WCHAR PoolDeviceTypeName[MAX_POOL_DEVICE_TYPE];
|
WCHAR PoolDeviceTypeName[MAX_POOL_DEVICE_TYPE];
|
||||||
if (!GetPoolDeviceTypeName(Pool, PoolDeviceTypeName))
|
if (!GetPoolDeviceTypeName(Pool, PoolDeviceTypeName))
|
||||||
{
|
{
|
||||||
LastError = GetLastError();
|
LastError = GetLastError();
|
||||||
goto cleanupFriendlyName;
|
goto cleanupNames;
|
||||||
}
|
}
|
||||||
if (!_wcsicmp(FriendlyName, PoolDeviceTypeName) || !_wcsicmp(DeviceDesc, PoolDeviceTypeName))
|
Ret = (FriendlyName && !_wcsicmp(FriendlyName, PoolDeviceTypeName)) ||
|
||||||
{
|
(DeviceDesc && !_wcsicmp(DeviceDesc, PoolDeviceTypeName));
|
||||||
Ret = TRUE;
|
if (Ret)
|
||||||
goto cleanupFriendlyName;
|
goto cleanupNames;
|
||||||
}
|
if (FriendlyName)
|
||||||
RemoveNumberedSuffix(FriendlyName);
|
RemoveNumberedSuffix(FriendlyName);
|
||||||
RemoveNumberedSuffix(DeviceDesc);
|
if (DeviceDesc)
|
||||||
if (!_wcsicmp(FriendlyName, PoolDeviceTypeName) || !_wcsicmp(DeviceDesc, PoolDeviceTypeName))
|
RemoveNumberedSuffix(DeviceDesc);
|
||||||
{
|
Ret = (FriendlyName && !_wcsicmp(FriendlyName, PoolDeviceTypeName)) ||
|
||||||
Ret = TRUE;
|
(DeviceDesc && !_wcsicmp(DeviceDesc, PoolDeviceTypeName));
|
||||||
goto cleanupFriendlyName;
|
cleanupNames:
|
||||||
}
|
|
||||||
cleanupFriendlyName:
|
|
||||||
Free(FriendlyName);
|
Free(FriendlyName);
|
||||||
cleanupDeviceDesc:
|
|
||||||
Free(DeviceDesc);
|
Free(DeviceDesc);
|
||||||
SetLastError(LastError);
|
SetLastError(LastError);
|
||||||
return Ret;
|
return Ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user