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 <hul...@huawei.com> > Signed-off-by: Wang Hai <wangha...@huawei.com> > --- > 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 <jo...@kernel.org> Johan