lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 22 Nov 2022 22:05:09 +0100
From:   Pavel Machek <pavel@....cz>
To:     Shuah Khan <skhan@...uxfoundation.org>
Cc:     patches@...nsource.cirrus.com, linux-leds@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] leds: leds-wm831x-status: init chip_pdata before access

Hi!

> wm831x_status_probe() accesses status from chip_pdata before
> initializing it. Fix it.
> 
> Signed-off-by: Shuah Khan <skhan@...uxfoundation.org>

Does it? ARRAY_SIZE() will be compile-time constant, no?

What is the bug? Did you test the code?

Best regards,
								Pavel


> +++ b/drivers/leds/leds-wm831x-status.c
> @@ -212,7 +212,7 @@ static int wm831x_status_probe(struct platform_device *pdev)
>  	struct wm831x_status_pdata pdata;
>  	struct wm831x_status *drvdata;
>  	struct resource *res;
> -	int id = pdev->id % ARRAY_SIZE(chip_pdata->status);
> +	int id;
>  	int ret;
>  
>  	res = platform_get_resource(pdev, IORESOURCE_REG, 0);
> @@ -229,9 +229,10 @@ static int wm831x_status_probe(struct platform_device *pdev)
>  	drvdata->wm831x = wm831x;
>  	drvdata->reg = res->start;
>  
> -	if (dev_get_platdata(wm831x->dev))
> +	if (dev_get_platdata(wm831x->dev)) {
>  		chip_pdata = dev_get_platdata(wm831x->dev);
> -	else
> +		id = pdev->id % ARRAY_SIZE(chip_pdata->status);
> +	} else
>  		chip_pdata = NULL;
>  
>  	memset(&pdata, 0, sizeof(pdata));

-- 
People of Russia, stop Putin before his war on Ukraine escalates.

Download attachment "signature.asc" of type "application/pgp-signature" (196 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ