pcapparse: Remove unneeded unref and only set pad caps if we have caps
authorZaheer Abbas Merali <zaheermerali@gmail.com>
Wed, 14 Aug 2013 08:47:31 +0000 (10:47 +0200)
committerSebastian Dröge <slomo@circular-chaos.org>
Wed, 14 Aug 2013 08:48:26 +0000 (10:48 +0200)
Fixes crashes due to invalid unrefs.

https://bugzilla.gnome.org/show_bug.cgi?id=705957

gst/pcapparse/gstpcapparse.c

index 1297c54..069d759 100644 (file)
@@ -494,7 +494,8 @@ gst_pcap_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
                   GST_CLOCK_TIME_IS_VALID (self->cur_ts)) {
                 GstSegment segment;
 
-                gst_pad_set_caps (self->src_pad, self->caps);
+                if (self->caps)
+                  gst_pad_set_caps (self->src_pad, self->caps);
                 gst_segment_init (&segment, GST_FORMAT_TIME);
                 segment.start = self->cur_ts;
                 gst_pad_push_event (self->src_pad,
@@ -607,7 +608,5 @@ gst_pcap_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
       break;
   }
 
-  gst_object_unref (self);
-
   return ret;
 }