From: Gonglei <arei.gong...@huawei.com>

Variable "conf" going out of scope leaks the storage
it points to in line 856.

Signed-off-by: Gonglei <arei.gong...@huawei.com>
---
v2:
 using an better way to avoid memory leak. (Markus) 
---
 audio/ossaudio.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index 11e76a1..94b473b 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -848,14 +848,11 @@ static OSSConf glob_conf = {
 
 static void *oss_audio_init (void)
 {
-    OSSConf *conf = g_malloc(sizeof(OSSConf));
-    *conf = glob_conf;
-
-    if (access(conf->devpath_in, R_OK | W_OK) < 0 ||
-        access(conf->devpath_out, R_OK | W_OK) < 0) {
+    if (access(glob_conf.devpath_in, R_OK | W_OK) < 0 ||
+        access(glob_conf.devpath_out, R_OK | W_OK) < 0) {
         return NULL;
     }
-    return conf;
+    return g_memdup(&glob_conf, sizeof(glob_conf));
 }
 
 static void oss_audio_fini (void *opaque)
-- 
1.7.12.4



Reply via email to