rtpmux: Fix some more leaks
authorHåvard Graff <havard.graff@tandberg.com>
Mon, 1 Dec 2008 22:54:58 +0000 (17:54 -0500)
committerTim-Philipp Müller <tim@centricular.net>
Sun, 16 Dec 2012 16:32:40 +0000 (16:32 +0000)
gst/rtpmanager/gstrtpdtmfmux.c
gst/rtpmanager/gstrtpmux.c

index 52df8b5..4e0a86f 100644 (file)
@@ -172,8 +172,10 @@ gst_rtp_dtmf_mux_chain (GstPad * pad, GstBuffer * buffer)
     GST_OBJECT_UNLOCK (mux);
     if (parent_class->chain_func)
       ret = parent_class->chain_func (pad, buffer);
-    else
+    else {
+      gst_buffer_unref (buffer);
       ret = GST_FLOW_ERROR;
+    }
   }
 
   gst_object_unref (mux);
index ba7243e..34b9fd8 100644 (file)
@@ -104,6 +104,8 @@ static void gst_rtp_mux_set_property (GObject * object, guint prop_id,
 static void gst_rtp_mux_get_property (GObject * object, guint prop_id,
     GValue * value, GParamSpec * pspec);
 
+static gboolean gst_rtp_mux_src_event (GstPad * pad, GstEvent * event);
+
 static GstElementClass *parent_class = NULL;
 
 GType
@@ -211,6 +213,7 @@ static gboolean gst_rtp_mux_src_event (GstPad * pad,
         break;
       case GST_ITERATOR_RESYNC:
         gst_iterator_resync (iter);
+        result = FALSE;
         break;
       case GST_ITERATOR_ERROR:
         GST_WARNING_OBJECT (rtp_mux, "Error iterating sinkpads");
@@ -219,7 +222,8 @@ static gboolean gst_rtp_mux_src_event (GstPad * pad,
         break;
     }
   }
-
+  gst_iterator_free (iter);
+  gst_object_unref (rtp_mux);
   gst_event_unref (event);
 
   return result;