Re: [PATCH v2] clk: Fix memory leak in devm_clk_notifier_register()

From: Dan Carpenter
Date: Mon Jun 19 2023 - 04:50:22 EST


On Mon, Jun 19, 2023 at 11:22:53AM +0800, Fei Shao wrote:
> devm_clk_notifier_register() allocates a devres resource for clk
> notifier but didn't register that to the device, so the notifier didn't
> get unregistered on device detach and the allocated resource was leaked.
>
> Fix the issue by registering the resource through devres_add().
>
> Fixes: 6d30d50d037d ("clk: add devm variant of clk_notifier_register")
> Signed-off-by: Fei Shao <fshao@xxxxxxxxxxxx>
> ---
>

Reviewed-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

How did you find this bug?

I can think of some ways to find this bug with static analysis.

KTODO: static analysis: look at unused parameters

Both GCC and Clang have a warning for unused parameters. I think the
last time I looked at GCC it had a lot of false positives for functions
which were called as pointers but hopefully that has been fixed now?
Smatch does not have a check for this. If someone were to write it,
I would probably the check under the --pedantic flag so it would be
turned off by default.

regards,
dan carpenter