HID: steelseries: Fix signedness bug in steelseries_headset_arctis_1_fetch_battery()
authorDan Carpenter <dan.carpenter@linaro.org>
Fri, 15 Sep 2023 12:59:04 +0000 (15:59 +0300)
committerJiri Kosina <jkosina@suse.cz>
Mon, 18 Sep 2023 14:44:24 +0000 (16:44 +0200)
commit6c667ef6e2c88523469a6a94493b441cac2970d9
treeb16314c93a3035c58c92a4c21a127582af7f2e37
parente1cd4004cde7c9b694bbdd8def0e02288ee58c74
HID: steelseries: Fix signedness bug in steelseries_headset_arctis_1_fetch_battery()

The hid_hw_raw_request() function returns negative error codes or the
number bytes transferred.  The problem is that when it returns negative
error codes and we check if "ret < sizeof(arctis_1_battery_request)",
then the negative values are type promoted from int to high unsigned long
values and treated as success.

This was detected using Smatch:

    drivers/hid/hid-steelseries.c:393 steelseries_headset_arctis_1_fetch_battery()
    warn: error code type promoted to positive: 'ret'

Fixes: a0c76896c3fb ("HID: steelseries: Add support for Arctis 1 XBox")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-steelseries.c