summaryrefslogtreecommitdiff
path: root/gst/mpegdemux
diff options
context:
space:
mode:
authorvanista <vanista@gmail.com>2009-02-28 19:41:10 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-02-28 19:41:10 +0100
commit38dd0f6410fc170035194eaee2e520e88cf42adc (patch)
tree4e3a033cc86e4e41199643067e5070b440ad9983 /gst/mpegdemux
parent38d3b76d1b779527371e1750082b561e3c07239b (diff)
downloadgstreamer-plugins-bad-38dd0f6410fc170035194eaee2e520e88cf42adc.tar.gz
mpegtsdemux: Fix memory leaks when PUSI is missed due to packet loss
Fixes bug #573288.
Diffstat (limited to 'gst/mpegdemux')
-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 7749c7e7c..e06d76234 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;
}