diff --git a/gst/mpegdemux/gstsectionfilter.c b/gst/mpegdemux/gstsectionfilter.c index 7749c7e7ce..e06d76234e 100644 --- a/gst/mpegdemux/gstsectionfilter.c +++ b/gst/mpegdemux/gstsectionfilter.c @@ -137,7 +137,7 @@ gst_section_filter_push (GstSectionFilter * filter, gboolean pusi, /* deter filter->section_length &= 0x0fff; if (filter->section_length > 1021) { GST_DEBUG ("section length too big"); - return FALSE; + goto failure; } gst_adapter_push (filter->adapter, buf); filter->last_continuity_counter = continuity_counter; @@ -156,6 +156,9 @@ gst_section_filter_push (GstSectionFilter * filter, gboolean pusi, /* deter "new continuity counter but not pusi: %d", filter->last_continuity_counter, continuity_counter); gst_section_filter_clear (filter); - return FALSE; + goto failure; } +failure: + gst_buffer_unref (buf); + return FALSE; }