summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gst/mpegdemux/gstsectionfilter.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gst/mpegdemux/gstsectionfilter.c b/gst/mpegdemux/gstsectionfilter.c
index 7749c7e7..e06d7623 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;
}