diff options
author | vanista <vanista@gmail.com> | 2009-02-28 19:41:10 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2009-02-28 19:41:10 +0100 |
commit | 38dd0f6410fc170035194eaee2e520e88cf42adc (patch) | |
tree | 4e3a033cc86e4e41199643067e5070b440ad9983 /gst/mpegdemux | |
parent | 38d3b76d1b779527371e1750082b561e3c07239b (diff) | |
download | gstreamer-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.c | 7 |
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; } |