Re: [PATCH 1/4] media: cec-notifier: fix possible object reference leak

From: Hans Verkuil (hansverk)
Date: Mon Feb 11 2019 - 05:48:30 EST


On 09/02/2019 03:48, Wen Yang wrote:
> put_device() should be called in cec_notifier_release(),
> since the dev is being passed down to cec_notifier_get_conn(),
> which holds reference. On cec_notifier destruction, it
> should drop the reference to the device.
>
> Fixes: 6917a7b77413 ("[media] media: add CEC notifier support")
> Signed-off-by: Wen Yang <yellowriver2010@xxxxxxxxxxx>
> ---
> drivers/media/cec/cec-notifier.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/cec/cec-notifier.c b/drivers/media/cec/cec-notifier.c
> index dd2078b..621d4ae 100644
> --- a/drivers/media/cec/cec-notifier.c
> +++ b/drivers/media/cec/cec-notifier.c
> @@ -66,6 +66,7 @@ static void cec_notifier_release(struct kref *kref)
> container_of(kref, struct cec_notifier, kref);
>
> list_del(&n->head);
> + put_device(n->dev);
> kfree(n->conn);
> kfree(n);
> }
>

Sorry, no. The dev pointer is just a search key that the notifier code looks
for. It is not the notifier's responsibility to take a reference, that would
be the responsibility of the hdmi and cec drivers.

If you can demonstrate that there is an object reference leak, then please
provide the details: it is likely a bug elsewhere and not in the notifier
code.

BTW, your patch series didn't arrive on the linux-media mailinglist for
some reason.

Regards,

Hans