Module: wine Branch: master Commit: bae4ebb7d72aeeeea4dd69a24cb4551814bbc6be URL: http://source.winehq.org/git/wine.git/?a=commit;h=bae4ebb7d72aeeeea4dd69a24c...
Author: Alexander Morozov amorozov@etersoft.ru Date: Fri Mar 28 18:49:34 2008 +0300
setupapi: Add a check of "#" for interface subkey names.
---
dlls/setupapi/devinst.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c index 936f6a7..60da5e8 100644 --- a/dlls/setupapi/devinst.c +++ b/dlls/setupapi/devinst.c @@ -1986,21 +1986,24 @@ static void SETUPDI_AddDeviceInterfaces(SP_DEVINFO_DATA *dev, HKEY key, HKEY subKey; SP_DEVICE_INTERFACE_DATA *iface = NULL;
- /* The subkey name is the reference string, with a '#' prepended */ - SETUPDI_AddInterfaceInstance(dev, interface, subKeyName + 1, - &iface); - l = RegOpenKeyExW(key, subKeyName, 0, KEY_READ, &subKey); - if (!l) + if (*subKeyName == '#') { - WCHAR symbolicLink[MAX_PATH]; - DWORD dataType; - - len = sizeof(symbolicLink); - l = RegQueryValueExW(subKey, SymbolicLink, NULL, &dataType, - (BYTE *)symbolicLink, &len); - if (!l && dataType == REG_SZ) - SETUPDI_SetInterfaceSymbolicLink(iface, symbolicLink); - RegCloseKey(subKey); + /* The subkey name is the reference string, with a '#' prepended */ + SETUPDI_AddInterfaceInstance(dev, interface, subKeyName + 1, + &iface); + l = RegOpenKeyExW(key, subKeyName, 0, KEY_READ, &subKey); + if (!l) + { + WCHAR symbolicLink[MAX_PATH]; + DWORD dataType; + + len = sizeof(symbolicLink); + l = RegQueryValueExW(subKey, SymbolicLink, NULL, &dataType, + (BYTE *)symbolicLink, &len); + if (!l && dataType == REG_SZ) + SETUPDI_SetInterfaceSymbolicLink(iface, symbolicLink); + RegCloseKey(subKey); + } } /* Allow enumeration to continue */ l = ERROR_SUCCESS;