From: Jaroslav Kysela Date: Tue, 30 Oct 2012 10:43:07 +0000 (+0100) Subject: PCM: Fix memory leak for pcm empty and asym plugins X-Git-Tag: v1.0.27~31 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=edcd677bf2065c560ef578940bab8f0aacddf0e6;p=alsa-lib.git PCM: Fix memory leak for pcm empty and asym plugins The init-only plugins do not have own pcm handle, so free the references to open function immediately after open. Signed-off-by: Jaroslav Kysela --- diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c index 5880057e..359d2955 100644 --- a/src/pcm/pcm.c +++ b/src/pcm/pcm.c @@ -2171,7 +2171,12 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name, if (open_func) { err = open_func(pcmp, name, pcm_root, pcm_conf, stream, mode); if (err >= 0) { - (*pcmp)->open_func = open_func; + if ((*pcmp)->open_func) { + /* only init plugin (like empty, asym) */ + snd_dlobj_cache_put(open_func); + } else { + (*pcmp)->open_func = open_func; + } err = 0; } else { snd_dlobj_cache_put(open_func);