gst/rtpmanager/: Fix some leaks.
authorWim Taymans <wim.taymans@gmail.com>
Wed, 12 Dec 2007 12:11:53 +0000 (12:11 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 11 Aug 2009 01:30:32 +0000 (02:30 +0100)
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_finalize),
(gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string),
(gst_rtp_bin_handle_message):
* gst/rtpmanager/rtpsession.c: (rtp_session_finalize),
(rtp_session_send_bye):
* gst/rtpmanager/rtpsource.c: (rtp_source_finalize):
Fix some leaks.

gst/rtpmanager/gstrtpbin.c
gst/rtpmanager/rtpsession.c
gst/rtpmanager/rtpsource.c

index 9277a8b..9d6689d 100644 (file)
@@ -1294,9 +1294,13 @@ static void
 gst_rtp_bin_finalize (GObject * object)
 {
   GstRtpBin *rtpbin;
+  gint i;
 
   rtpbin = GST_RTP_BIN (object);
 
+  for (i = 0; i < 9; i++)
+    g_free (rtpbin->sdes[i]);
+
   g_mutex_free (rtpbin->priv->bin_lock);
   gst_object_unref (rtpbin->provided_clock);
 
@@ -1347,6 +1351,9 @@ gst_rtp_bin_set_sdes_string (GstRtpBin * bin, GstRTCPSDESType type,
   GSList *item;
   const gchar *name;
 
+  if (type < 0 || type > 8)
+    return;
+
   GST_OBJECT_LOCK (bin);
   g_free (bin->sdes[type]);
   bin->sdes[type] = g_strdup (data);
@@ -1362,6 +1369,9 @@ gst_rtp_bin_get_sdes_string (GstRtpBin * bin, GstRTCPSDESType type)
 {
   gchar *result;
 
+  if (type < 0 || type > 8)
+    return NULL;
+
   GST_OBJECT_LOCK (bin);
   result = g_strdup (bin->sdes[type]);
   GST_OBJECT_UNLOCK (bin);
index 5cba052..b29f003 100644 (file)
@@ -323,6 +323,8 @@ rtp_session_finalize (GObject * object)
   for (i = 0; i < 32; i++)
     g_hash_table_destroy (sess->ssrcs[i]);
 
+  g_free (sess->bye_reason);
+
   g_hash_table_destroy (sess->cnames);
   g_object_unref (sess->source);
 
@@ -1577,6 +1579,7 @@ rtp_session_send_bye (RTPSession * sess, const gchar * reason)
   /* we have BYE now */
   source->received_bye = TRUE;
   /* at least one member wants to send a BYE */
+  g_free (sess->bye_reason);
   sess->bye_reason = g_strdup (reason);
   sess->stats.avg_rtcp_packet_size = 100;
   sess->stats.bye_members = 1;
index 4985bcc..c48c8d0 100644 (file)
@@ -169,6 +169,7 @@ rtp_source_finalize (GObject * object)
 {
   RTPSource *src;
   GstBuffer *buffer;
+  gint i;
 
   src = RTP_SOURCE_CAST (object);
 
@@ -176,6 +177,9 @@ rtp_source_finalize (GObject * object)
     gst_buffer_unref (buffer);
   g_queue_free (src->packets);
 
+  for (i = 0; i < 9; i++)
+    g_free (src->sdes[i]);
+
   g_free (src->bye_reason);
 
   G_OBJECT_CLASS (rtp_source_parent_class)->finalize (object);