lkml.org 
[lkml]   [2019]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 025/162] ASoC: dapm: fix a memory leak bug
    Date
    [ Upstream commit 45004d66f2a28d78f543fb2ffbc133e31dc2d162 ]

    In snd_soc_dapm_new_control_unlocked(), a kernel buffer is allocated in
    dapm_cnew_widget() to hold the new dapm widget. Then, different actions are
    taken according to the id of the widget, i.e., 'w->id'. If any failure
    occurs during this process, snd_soc_dapm_new_control_unlocked() should be
    terminated by going to the 'request_failed' label. However, the allocated
    kernel buffer is not freed on this code path, leading to a memory leak bug.

    To fix the above issue, free the buffer before returning from
    snd_soc_dapm_new_control_unlocked() through the 'request_failed' label.

    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Link: https://lore.kernel.org/r/1563803864-2809-1-git-send-email-wang6495@umn.edu
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/soc-dapm.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
    index 835ce1ff188d9..f40adb604c25b 100644
    --- a/sound/soc/soc-dapm.c
    +++ b/sound/soc/soc-dapm.c
    @@ -3705,6 +3705,8 @@ request_failed:
    dev_err(dapm->dev, "ASoC: Failed to request %s: %d\n",
    w->name, ret);

    + kfree_const(w->sname);
    + kfree(w);
    return ERR_PTR(ret);
    }

    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-27 10:01    [W:4.872 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site