platform/x86: hp-bioscfg: fix a signedness bug in hp_wmi_perform_query()
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 18 Jul 2023 07:05:05 +0000 (10:05 +0300)
committerHans de Goede <hdegoede@redhat.com>
Wed, 26 Jul 2023 14:15:45 +0000 (16:15 +0200)
The error handling won't work if "mid" is unsigned.  "ret" is used to
store negative error codes and declaring it as a u32 won't cause a bug
but it's ugly.  The "actual_outsize" variable is a number between 0-4096
so it can be declared as int as well.

Fixes: 69ea03e38f24 ("platform/x86: hp-bioscfg: biosattr-interface")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/ad0a6ad9-099b-40a4-ae91-b9dca622ff4e@moroto.mountain
Reviewed-by: Jorge Lopez <jorge.lopez2@hp.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/hp/hp-bioscfg/biosattr-interface.c

index 1d59ad6..dea54f3 100644 (file)
@@ -123,7 +123,7 @@ int hp_wmi_perform_query(int query, enum hp_wmi_command command, void *buffer,
        struct bios_return *bios_return;
        union acpi_object *obj = NULL;
        struct bios_args *args = NULL;
-       u32 mid, actual_outsize, ret;
+       int mid, actual_outsize, ret;
        size_t bios_args_size;
 
        mid = hp_encode_outsize_for_pvsz(outsize);