From ddee83ef0bc13ce888a890f29650454e2c7ec496 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 14 Aug 2013 10:39:46 +0200 Subject: [PATCH] pesparse: Fix pes extension data length check And remove length/data updates (we use the header size just below to properly set them). Based on feedback from Stas Sergeev https://bugzilla.gnome.org/show_bug.cgi?id=657343 --- gst/mpegtsdemux/pesparse.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gst/mpegtsdemux/pesparse.c b/gst/mpegtsdemux/pesparse.c index 258badcbe2..ca1b990bff 100644 --- a/gst/mpegtsdemux/pesparse.c +++ b/gst/mpegtsdemux/pesparse.c @@ -336,7 +336,7 @@ mpegts_parse_pes_header (const guint8 * data, gsize length, PESHeader * res) goto bad_extension_marker_2; res->extension_field_length = val8 & 0x7f; - if (G_UNLIKELY (length < res->extension_field_length + 1)) + if (G_UNLIKELY (length < res->extension_field_length)) goto need_more_data; GST_LOG ("extension_field_length : %" G_GSIZE_FORMAT, @@ -354,9 +354,7 @@ mpegts_parse_pes_header (const guint8 * data, gsize length, PESHeader * res) } else { GST_LOG ("tref_extension : %d", flags & 0x01); } - data += res->extension_field_length; } - length -= res->extension_field_length + 1; } stuffing_byte: