Fix memory leak on failure case 29/114329/2 accepted/tizen/3.0/common/20170214.180610 accepted/tizen/3.0/ivi/20170214.042611 accepted/tizen/3.0/mobile/20170214.042523 accepted/tizen/3.0/tv/20170214.042543 accepted/tizen/3.0/wearable/20170214.042558 submit/tizen_3.0/20170213.103000
authorSeungbae Shin <seungbae.shin@samsung.com>
Mon, 13 Feb 2017 04:22:44 +0000 (13:22 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Mon, 13 Feb 2017 10:19:56 +0000 (19:19 +0900)
[Version] 5.0-108
[Profile] Common
[Issue Type] Cleanup

Change-Id: Ieda1e11b5dc71460e864f89b96ccf2892be642da

packaging/pulseaudio.spec
src/modules/echo-cancel/module-echo-cancel.c
src/pulsecore/mutex-posix.c
src/pulsecore/protocol-native.c

index 30cca25..562c864 100644 (file)
@@ -11,7 +11,7 @@
 Name:             pulseaudio
 Summary:          Improved Linux sound server
 Version:          5.0
-Release:          107
+Release:          108
 Group:            Multimedia/Audio
 License:          LGPL-2.1+
 URL:              http://pulseaudio.org
index a865c9f..2fac88d 100644 (file)
@@ -1602,37 +1602,36 @@ static int extension_cb(pa_native_protocol *p, pa_module *m, pa_native_connectio
     uint32_t command;
     uint32_t value;
     pa_tagstruct *reply = NULL;
+
     pa_assert(p);
     pa_assert(m);
     pa_assert(c);
     pa_assert(t);
 
     if (pa_tagstruct_getu32(t, &command) < 0)
-    goto fail;
+        return -1;
 
+    switch (command) {
+        case AEC_SET_VOLUME:
+            pa_tagstruct_getu32(t, &value);
+            pa_log_debug("AEC_SET_VOLUME in echo cancel = %d", value);
+            break;
+
+        case AEC_SET_DEVICE:
+            pa_tagstruct_getu32(t, &value);
+            pa_log_debug("AEC_SET_DEVICE in echo cancel = %d", value);
+            break;
+
+        default:
+            pa_tagstruct_free(reply);
+            return -1;
+    }
     reply = pa_tagstruct_new(NULL, 0);
     pa_tagstruct_putu32(reply, PA_COMMAND_REPLY);
     pa_tagstruct_putu32(reply, tag);
-
-    switch (command) {
-        case AEC_SET_VOLUME: {
-            pa_tagstruct_getu32(t,&value);
-            pa_log_debug("AEC_SET_VOLUME in echo cancel = %d",value);
-        break;
-    }
-        case AEC_SET_DEVICE: {
-            pa_tagstruct_getu32(t,&value);
-            pa_log_debug("AEC_SET_DEVICE in echo cancel = %d",value);
-        break;
-    }
-    default:
-        goto fail;
-    }
     pa_pstream_send_tagstruct(pa_native_connection_get_pstream(c), reply);
-    return 0;
 
-fail:
-    return -1;
+    return 0;
 }
 
 /* Common initialisation bits between module-echo-cancel and the standalone
index 5c3a87d..3e562e1 100644 (file)
@@ -85,7 +85,7 @@ void pa_mutex_free(pa_mutex *m) {
 #ifdef __TIZEN__
     int ret = pthread_mutex_destroy(&m->mutex);
     if (ret != 0)
-        pa_log_error("pthread_mutex_destroy [%p] error [%d]", &m->mutex, errno);
+        pa_log_error("pthread_mutex_destroy [%p] error [%d]", &m->mutex, ret);
     pa_assert_se(ret == 0);
 #else
     pa_assert_se(pthread_mutex_destroy(&m->mutex) == 0);
@@ -99,7 +99,7 @@ void pa_mutex_lock(pa_mutex *m) {
 #ifdef __TIZEN__
     int ret = pthread_mutex_lock(&m->mutex);
     if (ret != 0)
-        pa_log_error("pthread_mutex_lock [%p] error [%d]", &m->mutex, errno);
+        pa_log_error("pthread_mutex_lock [%p] error [%d]", &m->mutex, ret);
     pa_assert_se(ret == 0);
 #else
     pa_assert_se(pthread_mutex_lock(&m->mutex) == 0);
@@ -124,7 +124,7 @@ void pa_mutex_unlock(pa_mutex *m) {
 #ifdef __TIZEN__
     int ret = pthread_mutex_unlock(&m->mutex);
     if (ret != 0)
-        pa_log_error("pthread_mutex_unlock [%p] error [%d]", &m->mutex, errno);
+        pa_log_error("pthread_mutex_unlock [%p] error [%d]", &m->mutex, ret);
     pa_assert_se(ret == 0);
 #else
     pa_assert_se(pthread_mutex_unlock(&m->mutex) == 0);
index 30fef91..3871cfe 100644 (file)
@@ -2299,6 +2299,7 @@ static void command_create_playback_stream(pa_pdispatch *pd, uint32_t command, u
             format = pa_format_info_new();
             if (pa_tagstruct_get_format_info(t, format) < 0) {
                 protocol_error(c);
+                pa_format_info_free(format);
                 goto finish;
             }
             pa_idxset_put(formats, format, NULL);
@@ -2646,6 +2647,7 @@ static void command_create_record_stream(pa_pdispatch *pd, uint32_t command, uin
             format = pa_format_info_new();
             if (pa_tagstruct_get_format_info(t, format) < 0) {
                 protocol_error(c);
+                pa_format_info_free(format);
                 goto finish;
             }
             pa_idxset_put(formats, format, NULL);