leds: lp55xx: fix null deref on firmware load failure
authorMichal Kazior <michal@plume.com>
Mon, 11 Feb 2019 09:29:27 +0000 (10:29 +0100)
committerJacek Anaszewski <jacek.anaszewski@gmail.com>
Thu, 14 Feb 2019 21:03:44 +0000 (22:03 +0100)
commit5ddb0869bfc1bca6cfc592c74c64a026f936638c
treead600e28f853eb1ea69f3e4c8d2c5ee693897e18
parent0f85e8498a482cbfdab91fb2d1b81c6c8c1cfd15
leds: lp55xx: fix null deref on firmware load failure

I've stumbled upon a kernel crash and the logs
pointed me towards the lp5562 driver:

> <4>[306013.841294] lp5562 0-0030: Direct firmware load for lp5562 failed with error -2
> <4>[306013.894990] lp5562 0-0030: Falling back to user helper
> ...
> <3>[306073.924886] lp5562 0-0030: firmware request failed
> <1>[306073.939456] Unable to handle kernel NULL pointer dereference at virtual address 00000000
> <4>[306074.251011] PC is at _raw_spin_lock+0x1c/0x58
> <4>[306074.255539] LR is at release_firmware+0x6c/0x138
> ...

After taking a look I noticed firmware_release()
could be called with either NULL or a dangling
pointer.

Fixes: 10c06d178df11 ("leds-lp55xx: support firmware interface")
Signed-off-by: Michal Kazior <michal@plume.com>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
drivers/leds/leds-lp55xx-common.c