Author: hpoussin Date: Wed Jul 19 09:19:11 2017 New Revision: 75374
URL: http://svn.reactos.org/svn/reactos?rev=75374&view=rev Log: [SETUPAPI] Do not crash when encountering a device with HardwareIDs
Modified: trunk/reactos/dll/win32/setupapi/driver.c
Modified: trunk/reactos/dll/win32/setupapi/driver.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/driver.c... ============================================================================== --- trunk/reactos/dll/win32/setupapi/driver.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/setupapi/driver.c [iso-8859-1] Wed Jul 19 09:19:11 2017 @@ -1109,23 +1109,26 @@ } /* FIXME: Check ExcludeFromSelect list */ DriverAlreadyAdded = FALSE; - for (DriverRank = 0, currentId = (LPCWSTR)HardwareIDs; !DriverAlreadyAdded && *currentId; currentId += strlenW(currentId) + 1, DriverRank++) + if (HardwareIDs) { - if (strcmpiW(DeviceId, currentId) == 0) + for (DriverRank = 0, currentId = (LPCWSTR)HardwareIDs; !DriverAlreadyAdded && *currentId; currentId += strlenW(currentId) + 1, DriverRank++) { - AddDriverToList( - pDriverListHead, - DriverType, - &ClassGuid, - ContextDevice, - currentInfFileDetails, - FullInfFileName, - ProviderName, - ManufacturerName, - currentId, - DriverDate, DriverVersion, - DriverRank + (i == 2 ? 0 : 0x1000 + i - 3)); - DriverAlreadyAdded = TRUE; + if (strcmpiW(DeviceId, currentId) == 0) + { + AddDriverToList( + pDriverListHead, + DriverType, + &ClassGuid, + ContextDevice, + currentInfFileDetails, + FullInfFileName, + ProviderName, + ManufacturerName, + currentId, + DriverDate, DriverVersion, + DriverRank + (i == 2 ? 0 : 0x1000 + i - 3)); + DriverAlreadyAdded = TRUE; + } } } if (CompatibleIDs)