Re: [PATCH] Input: gpio_keys_polled - fix DT node reference leak

From: Mika Westerberg
Date: Fri Oct 21 2016 - 05:02:49 EST


On Thu, Oct 20, 2016 at 03:06:36PM -0700, Dmitry Torokhov wrote:
> When someone requests button with wakeup (which this driver does not
> support) we should drop reference to the current child device node before
> returning error.
>
> Note that when we using legacy platform data 'child' stays NULL which
> fwnode_handle_put() handles just fine.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> ---
> drivers/input/keyboard/gpio_keys_polled.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c
> index 270dcf7..72b3503 100644
> --- a/drivers/input/keyboard/gpio_keys_polled.c
> +++ b/drivers/input/keyboard/gpio_keys_polled.c
> @@ -291,6 +291,7 @@ static int gpio_keys_polled_probe(struct platform_device *pdev)
>
> if (button->wakeup) {
> dev_err(dev, DRV_NAME " does not support wakeup\n");
> + fwnode_handle_put(child);

Are you sure this is the right place?

I didn't try to compile this but to me it looks like there is no
variable named "child" in the whole gpio_keys_polled_probe() function.
Unless I'm looking at wrong branch ;-)

> return -EINVAL;
> }
>
> --
> 2.8.0.rc3.226.g39d4020
>
>
> --
> Dmitry