role-cork: Fix another minor leak
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Tue, 3 Jul 2012 12:41:54 +0000 (18:11 +0530)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Tue, 3 Jul 2012 12:49:20 +0000 (18:19 +0530)
Credit to David for finding this one.

src/modules/module-role-cork.c

index 8306987..8f8b58d 100644 (file)
@@ -225,9 +225,12 @@ int pa__init(pa_module *m) {
     if (roles) {
         const char *split_state = NULL;
         char *n = NULL;
-        while ((n = pa_split(roles, ",", &split_state)))
+        while ((n = pa_split(roles, ",", &split_state))) {
             if (n[0] != '\0')
                 pa_idxset_put(u->trigger_roles, n, NULL);
+            else
+                pa_xfree(n);
+        }
     }
     if (pa_idxset_isempty(u->trigger_roles)) {
         pa_log_debug("Using role 'phone' as trigger role.");
@@ -239,9 +242,12 @@ int pa__init(pa_module *m) {
     if (roles) {
         const char *split_state = NULL;
         char *n = NULL;
-        while ((n = pa_split(roles, ",", &split_state)))
+        while ((n = pa_split(roles, ",", &split_state))) {
             if (n[0] != '\0')
                 pa_idxset_put(u->cork_roles, n, NULL);
+            else
+                pa_xfree(n);
+        }
     }
     if (pa_idxset_isempty(u->cork_roles)) {
         pa_log_debug("Using roles 'music' and 'video' as cork roles.");