2022-12-06 09:45:48

by Denis Arefev

[permalink] [raw]
Subject: [PATCH] power: supply: Added check for negative values

Variable 'pirq', which may receive negative value
in platform_get_irq().
Used as an index in a function regmap_irq_get_virq().

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Denis Arefev <[email protected]>
---
drivers/power/supply/axp288_fuel_gauge.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/power/supply/axp288_fuel_gauge.c b/drivers/power/supply/axp288_fuel_gauge.c
index 148eb8105803..36c7039c99c2 100644
--- a/drivers/power/supply/axp288_fuel_gauge.c
+++ b/drivers/power/supply/axp288_fuel_gauge.c
@@ -640,6 +640,8 @@ static void fuel_gauge_init_irq(struct axp288_fg_info *info)

for (i = 0; i < AXP288_FG_INTR_NUM; i++) {
pirq = platform_get_irq(info->pdev, i);
+ if (pirq < 0)
+ continue;
info->irq[i] = regmap_irq_get_virq(info->regmap_irqc, pirq);
if (info->irq[i] < 0) {
dev_warn(&info->pdev->dev,
--
2.25.1


2022-12-06 17:23:40

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] power: supply: Added check for negative values

Hi,

On 12/6/22 10:17, Denis Arefev wrote:
> Variable 'pirq', which may receive negative value
> in platform_get_irq().
> Used as an index in a function regmap_irq_get_virq().
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Signed-off-by: Denis Arefev <[email protected]>

Thanks, patch looks good to me:

Reviewed-by: Hans de Goede <[email protected]>

Regards,

Hans



> ---
> drivers/power/supply/axp288_fuel_gauge.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/power/supply/axp288_fuel_gauge.c b/drivers/power/supply/axp288_fuel_gauge.c
> index 148eb8105803..36c7039c99c2 100644
> --- a/drivers/power/supply/axp288_fuel_gauge.c
> +++ b/drivers/power/supply/axp288_fuel_gauge.c
> @@ -640,6 +640,8 @@ static void fuel_gauge_init_irq(struct axp288_fg_info *info)
>
> for (i = 0; i < AXP288_FG_INTR_NUM; i++) {
> pirq = platform_get_irq(info->pdev, i);
> + if (pirq < 0)
> + continue;
> info->irq[i] = regmap_irq_get_virq(info->regmap_irqc, pirq);
> if (info->irq[i] < 0) {
> dev_warn(&info->pdev->dev,

2023-01-02 22:47:09

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH] power: supply: Added check for negative values

Hi,

On Tue, Dec 06, 2022 at 06:11:23PM +0100, Hans de Goede wrote:
> Hi,
>
> On 12/6/22 10:17, Denis Arefev wrote:
> > Variable 'pirq', which may receive negative value
> > in platform_get_irq().
> > Used as an index in a function regmap_irq_get_virq().
> >
> > Found by Linux Verification Center (linuxtesting.org) with SVACE.
> >
> > Signed-off-by: Denis Arefev <[email protected]>
>
> Thanks, patch looks good to me:
>
> Reviewed-by: Hans de Goede <[email protected]>
>
> Regards,
>
> Hans

Thanks, queued to power-supply's fixes branch.

-- Sebastian

>
> > ---
> > drivers/power/supply/axp288_fuel_gauge.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/power/supply/axp288_fuel_gauge.c b/drivers/power/supply/axp288_fuel_gauge.c
> > index 148eb8105803..36c7039c99c2 100644
> > --- a/drivers/power/supply/axp288_fuel_gauge.c
> > +++ b/drivers/power/supply/axp288_fuel_gauge.c
> > @@ -640,6 +640,8 @@ static void fuel_gauge_init_irq(struct axp288_fg_info *info)
> >
> > for (i = 0; i < AXP288_FG_INTR_NUM; i++) {
> > pirq = platform_get_irq(info->pdev, i);
> > + if (pirq < 0)
> > + continue;
> > info->irq[i] = regmap_irq_get_virq(info->regmap_irqc, pirq);
> > if (info->irq[i] < 0) {
> > dev_warn(&info->pdev->dev,
>


Attachments:
(No filename) (1.29 kB)
signature.asc (849.00 B)
Download all attachments