lkml.org 
[lkml]   [2018]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] leds: fix a missing check of return value of lp55xx_read
From
Date
Hi Kangjie,

Thank you for the patch.

On 12/26/18 5:18 AM, Kangjie Lu wrote:
> When lp55xx_read() fails, "status" is an uninitialized variable and thus
> may contain random value; using it leads to undefined behaviors.
>
> The fix inserts a check for the return value of lp55xx_read: if it
> fails, returns with its error code.
>
> Signed-off-by: Kangjie Lu <kjlu@umn.edu>
> ---
> drivers/leds/leds-lp5523.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/leds/leds-lp5523.c b/drivers/leds/leds-lp5523.c
> index a2e74feee2b2..fd64df5a57a5 100644
> --- a/drivers/leds/leds-lp5523.c
> +++ b/drivers/leds/leds-lp5523.c
> @@ -318,7 +318,9 @@ static int lp5523_init_program_engine(struct lp55xx_chip *chip)
>
> /* Let the programs run for couple of ms and check the engine status */
> usleep_range(3000, 6000);
> - lp55xx_read(chip, LP5523_REG_STATUS, &status);
> + ret = lp55xx_read(chip, LP5523_REG_STATUS, &status);
> + if (ret)
> + return ret;
> status &= LP5523_ENG_STATUS_MASK;
>
> if (status != LP5523_ENG_STATUS_MASK) {
>

Applied to fixes-for-4.21 branch of linux-leds.git.

--
Best regards,
Jacek Anaszewski

\
 
 \ /
  Last update: 2018-12-28 17:53    [W:0.026 / U:0.716 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site