On Sat, Dec 05, 2020 at 06:38:27PM +0800, Wang Hai wrote:
> In gbaudio_dapm_free_controls(), if one of the widgets is not found, an error
> will be returned directly, which will cause the rest to be unable to be freed,
> resulting in leak.
>
> This patch fixes the bug. If if one of them is not found, just skip and free
> the others.
Apart from the typo, please break your lines at 72 columns or so (not
needed for the Fixes tag).
> Fixes: 510e340efe0c ("staging: greybus: audio: Add helper APIs for dynamic
> audio module")
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Wang Hai <[email protected]>
> ---
> drivers/staging/greybus/audio_helper.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/greybus/audio_helper.c
> b/drivers/staging/greybus/audio_helper.c
> index 237531ba60f3..3011b8abce38 100644
> --- a/drivers/staging/greybus/audio_helper.c
> +++ b/drivers/staging/greybus/audio_helper.c
> @@ -135,7 +135,8 @@ int gbaudio_dapm_free_controls(struct
> snd_soc_dapm_context *dapm,
> if (!w) {
> dev_err(dapm->dev, "%s: widget not found\n",
> widget->name);
> - return -EINVAL;
> + widget++;
> + continue;
> }
> widget++;
> #ifdef CONFIG_DEBUG_FS
Not sure if we can ever have the widget lookup fail, but at least this
looks consistent now.
Reviewed-by: Johan Hovold <[email protected]>
Johan
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel