From ef6839e72c62ed0cd41f3da276414268167f21c9 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Fri, 19 Feb 2016 16:40:54 -0300 Subject: mpeg4parser: prevent assertion when scanning for sync code Only search if there is indeed enough data to be searched otherwise an assertion is raised --- gst-libs/gst/codecparsers/gstmpeg4parser.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/codecparsers/gstmpeg4parser.c b/gst-libs/gst/codecparsers/gstmpeg4parser.c index ce156c5a2..b23fc872f 100644 --- a/gst-libs/gst/codecparsers/gstmpeg4parser.c +++ b/gst-libs/gst/codecparsers/gstmpeg4parser.c @@ -481,8 +481,11 @@ gst_mpeg4_parse (GstMpeg4Packet * packet, gboolean skip_user_data, packet->type = (GstMpeg4StartCode) (data[off1 + 3]); find_end: - off2 = gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, - off1 + 4, size - off1 - 4); + if (off1 < size - 4) + off2 = gst_byte_reader_masked_scan_uint32 (&br, 0xffffff00, 0x00000100, + off1 + 4, size - off1 - 4); + else + off2 = -1; if (off2 == -1) { GST_DEBUG ("Packet start %d, No end found", off1 + 4); -- cgit v1.2.3