sinowealth-nubwo: fix incorrect firmware version getting error check

If by any chance returned `size` was `0`, it would erroneously return 0,
which would do an uninitialized pointer dereference in
sinowealthnubwo_probe().
This fixes a convoluted warning by clang-analyze.
This commit is contained in:
Yaroslav Chvanov
2023-05-19 23:54:09 +03:00
parent 9383f63c04
commit bb67e9b54e

View File

@@ -105,9 +105,12 @@ sinowealth_get_firmware_string(struct ratbag_device *device, char **output)
}
size = ratbag_hidraw_get_feature_report(device, SINOWEALTHNUBWO_GET_FIRMWARE_CMD_REPORTID, buff, SINOWEALTHNUBWO_GET_FIRMWARE_MSGSIZE);
if (size < 0) {
return size;
}
if (size != SINOWEALTHNUBWO_GET_FIRMWARE_MSGSIZE) {
log_error(device->ratbag ,"Firmware report reply size mismatch expected %d got %d\n", SINOWEALTHNUBWO_GET_FIRMWARE_MSGSIZE, size);
return size;
return -EIO;
}
*output = strdup_ascii_only((char *) buff + SINOWEALTHNUBWO_GET_FIRMWARE_MSGOFFSET);