2021-05-07 19:19:48

by Tom Rix

[permalink] [raw]
Subject: [PATCH] HID: logitech-hidpp: initialize level variable

From: Tom Rix <[email protected]>

Static analysis reports this representative problem

hid-logitech-hidpp.c:1356:23: warning: Assigned value is
garbage or undefined
hidpp->battery.level = level;
^ ~~~~~

In some cases, 'level' is never set in hidpp20_battery_map_status_voltage()
Since level is not available on all hw, initialize level to unknown.

Fixes: be281368f297 ("hid-logitech-hidpp: read battery voltage from newer devices")
Signed-off-by: Tom Rix <[email protected]>
---
drivers/hid/hid-logitech-hidpp.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c
index 69670ca7e1e1..61635e629469 100644
--- a/drivers/hid/hid-logitech-hidpp.c
+++ b/drivers/hid/hid-logitech-hidpp.c
@@ -1265,6 +1265,7 @@ static int hidpp20_battery_map_status_voltage(u8 data[3], int *voltage,
int status;

long flags = (long) data[2];
+ *level = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;

if (flags & 0x80)
switch (flags & 0x07) {
--
2.26.3


2021-05-16 10:01:10

by Filipe Laíns

[permalink] [raw]
Subject: Re: [PATCH] HID: logitech-hidpp: initialize level variable

On Fri, 2021-05-07 at 12:18 -0700, [email protected] wrote:
> From: Tom Rix <[email protected]>
>
> Static analysis reports this representative problem
>
> hid-logitech-hidpp.c:1356:23: warning: Assigned value is
>   garbage or undefined
>         hidpp->battery.level = level;
>                              ^ ~~~~~
>
> In some cases, 'level' is never set in hidpp20_battery_map_status_voltage()
> Since level is not available on all hw, initialize level to unknown.
>
> Fixes: be281368f297 ("hid-logitech-hidpp: read battery voltage from newer
> devices")
> Signed-off-by: Tom Rix <[email protected]>
> ---
>  drivers/hid/hid-logitech-hidpp.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-
> hidpp.c
> index 69670ca7e1e1..61635e629469 100644
> --- a/drivers/hid/hid-logitech-hidpp.c
> +++ b/drivers/hid/hid-logitech-hidpp.c
> @@ -1265,6 +1265,7 @@ static int hidpp20_battery_map_status_voltage(u8
> data[3], int *voltage,
>         int status;
>  
>         long flags = (long) data[2];
> +       *level = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;
>  
>         if (flags & 0x80)
>                 switch (flags & 0x07) {

Hi Tom,

Taking a look at how this function is used, it does make sense to initialize the
level, thank you :)

Reviewed-by: Filipe Laíns <[email protected]>

Cheers,
Filipe Laíns


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part

2021-05-26 16:52:26

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] HID: logitech-hidpp: initialize level variable

On Sun, 16 May 2021, Filipe Laíns wrote:

> > Static analysis reports this representative problem
> >
> > hid-logitech-hidpp.c:1356:23: warning: Assigned value is
> >   garbage or undefined
> >         hidpp->battery.level = level;
> >                              ^ ~~~~~
> >
> > In some cases, 'level' is never set in hidpp20_battery_map_status_voltage()
> > Since level is not available on all hw, initialize level to unknown.
> >
> > Fixes: be281368f297 ("hid-logitech-hidpp: read battery voltage from newer
> > devices")
> > Signed-off-by: Tom Rix <[email protected]>
> > ---
> >  drivers/hid/hid-logitech-hidpp.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-
> > hidpp.c
> > index 69670ca7e1e1..61635e629469 100644
> > --- a/drivers/hid/hid-logitech-hidpp.c
> > +++ b/drivers/hid/hid-logitech-hidpp.c
> > @@ -1265,6 +1265,7 @@ static int hidpp20_battery_map_status_voltage(u8
> > data[3], int *voltage,
> >         int status;
> >  
> >         long flags = (long) data[2];
> > +       *level = POWER_SUPPLY_CAPACITY_LEVEL_UNKNOWN;
> >  
> >         if (flags & 0x80)
> >                 switch (flags & 0x07) {
>
> Hi Tom,
>
> Taking a look at how this function is used, it does make sense to initialize the
> level, thank you :)
>
> Reviewed-by: Filipe Laíns <[email protected]>

Applied, thanks.

--
Jiri Kosina
SUSE Labs