Messages in this thread | | | Subject | Re: [PATCH] staging: greybus: audio: Add missing unlock in gbaudio_dapm_free_controls() | From | "wanghai (M)" <> | Date | Fri, 4 Dec 2020 17:19:25 +0800 |
| |
在 2020/12/4 16:40, Johan Hovold 写道: > On Fri, Dec 04, 2020 at 10:13:50AM +0800, Wang Hai wrote: >> Add the missing unlock before return from function >> gbaudio_dapm_free_controls() in the error handling case. >> >> Fixes: 510e340efe0c ("staging: greybus: audio: Add helper APIs for dynamic audio module") >> Reported-by: Hulk Robot <hulkci@huawei.com> >> Signed-off-by: Wang Hai <wanghai38@huawei.com> >> --- >> drivers/staging/greybus/audio_helper.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/staging/greybus/audio_helper.c b/drivers/staging/greybus/audio_helper.c >> index 237531ba60f3..293675dbea10 100644 >> --- a/drivers/staging/greybus/audio_helper.c >> +++ b/drivers/staging/greybus/audio_helper.c >> @@ -135,6 +135,7 @@ int gbaudio_dapm_free_controls(struct snd_soc_dapm_context *dapm, >> if (!w) { >> dev_err(dapm->dev, "%s: widget not found\n", >> widget->name); >> + mutex_unlock(&dapm->card->dapm_mutex); >> return -EINVAL; >> } >> widget++; > This superficially looks correct, but there seems to be another bug in > this function. It can be used free an array of widgets, but if one of > them isn't found we just leak the rest. Perhaps that return should > rather be "widget++; continue;". > I think this is a good idea, should I send a v2 patch? >
| |