summaryrefslogtreecommitdiffstats
path: root/gst/rtpmanager/gstrtpbin.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/rtpmanager/gstrtpbin.c')
-rw-r--r--gst/rtpmanager/gstrtpbin.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index 9277a8b1..9d6689d2 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -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);