Connor McAdams (@cmcadams) commented about dlls/setupapi/devinst.c:
+{
- DWORD ret = ERROR_SUCCESS;
- if (!prop_key)
return ERROR_INVALID_DATA;
- if (!prop_type || (!buf && buf_size))
return ERROR_INVALID_USER_BUFFER;
- if (flags)
return ERROR_INVALID_FLAGS;
- if (IsEqualGUID( &prop_key->fmtid, &DEVPKEY_Device_DeviceDesc.fmtid ))
- {
DWORD reg_prop = prop_key->pid - 2, size, type;
if (prop_key->pid < 2 || reg_prop >= ARRAY_SIZE(PropertyMap) || !PropertyMap[reg_prop].devPropType)
return get_device_reg_property( device->key, prop_key, prop_type, buf, buf_size, req_size, flags );
```suggestion:-5+0 if (IsEqualGUID( &prop_key->fmtid, &DEVPKEY_Device_DeviceDesc.fmtid ) && prop_key->pid >= 2) { DWORD reg_prop = prop_key->pid - 2, size, type;
if (reg_prop >= ARRAY_SIZE(PropertyMap) || !PropertyMap[reg_prop].devPropType) return get_device_reg_property( device->key, prop_key, prop_type, buf, buf_size, req_size, flags ); ``` Moving the `prop_key->pid` check above makes this cleaner IMO.