telepathy-rakia: Fix memory leaks found by valgrind

Olivier Crête tester at kemper.freedesktop.org
Tue May 8 10:03:01 PDT 2012


Module: telepathy-rakia
Branch: master
Commit: 65707a304bb55a546d79be737d9145cd4b891da9
URL:    http://cgit.freedesktop.org/telepathy/telepathy-rakia/commit/?id=65707a304bb55a546d79be737d9145cd4b891da9

Author: Olivier Crête <olivier.crete at collabora.com>
Date:   Fri Feb 24 20:34:50 2012 -0500

Fix memory leaks found by valgrind

---

 rakia/call-channel.c |    6 ++++--
 rakia/call-stream.c  |    3 ++-
 rakia/sip-session.c  |   16 ++++++++++++++++
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/rakia/call-channel.c b/rakia/call-channel.c
index 080427f..89b4887 100644
--- a/rakia/call-channel.c
+++ b/rakia/call-channel.c
@@ -245,13 +245,15 @@ rakia_call_channel_constructed (GObject *obj)
       for (i = 0; i < medias->len; i++)
         {
           RakiaSipMedia *media = g_ptr_array_index (medias, i);
+          gchar *name;
+
           if (media)
             {
-              const gchar *name = g_strdup_printf ("initial_%s_%u",
+              name = g_strdup_printf ("initial_%s_%u",
                   sip_media_get_media_type_str (media), i + 1);
-
               new_content (self, name, media,
                   TP_CALL_CONTENT_DISPOSITION_INITIAL);
+              g_free (name);
             }
         }
 
diff --git a/rakia/call-stream.c b/rakia/call-stream.c
index 000d1c0..4c4a343 100644
--- a/rakia/call-stream.c
+++ b/rakia/call-stream.c
@@ -192,8 +192,8 @@ rakia_call_stream_constructed (GObject *object)
               G_TYPE_STRING, stun_server,
               G_TYPE_UINT, stun_port,
               G_TYPE_INVALID));
-      g_free (stun_server);
     }
+  g_free (stun_server);
   tp_base_media_call_stream_set_stun_servers (bmcs, stun_array);
   g_ptr_array_unref (stun_array);
 
@@ -449,6 +449,7 @@ media_remote_candidates_updated_cb (RakiaSipMedia *media, RakiaCallStream *self)
 
       tp_call_stream_endpoint_add_new_candidate (priv->endpoint,
           candidate->component, candidate->ip, candidate->port, info);
+      g_hash_table_unref (info);
     }
 
   tp_base_media_call_stream_add_endpoint (bmcs, priv->endpoint);
diff --git a/rakia/sip-session.c b/rakia/sip-session.c
index b52abd0..aeb1506 100644
--- a/rakia/sip-session.c
+++ b/rakia/sip-session.c
@@ -390,6 +390,22 @@ rakia_sip_session_dispose (GObject *object)
 
   tp_clear_object (&self->priv->conn);
 
+  if (self->priv->remote_sdp != NULL)
+    {
+      self->priv->remote_sdp = NULL;
+      g_assert (self->priv->home != NULL);
+      su_home_unref (self->priv->home);
+      self->priv->home = NULL;
+    }
+
+  if (self->priv->backup_remote_sdp != NULL)
+    {
+      self->priv->backup_remote_sdp = NULL;
+      g_assert (self->priv->backup_home != NULL);
+      su_home_unref (self->priv->backup_home);
+      self->priv->backup_home = NULL;
+    }
+
   if (G_OBJECT_CLASS (rakia_sip_session_parent_class)->dispose)
     G_OBJECT_CLASS (rakia_sip_session_parent_class)->dispose (object);
 



More information about the telepathy-commits mailing list