summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2016-02-19 16:40:54 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2016-02-19 16:42:35 -0300
commit115945b66366a875f9d848d8f463a9406a1bd514 (patch)
tree77627a673ab4b5e8adb2de3d7e020d6552d9314e /gst-libs
parentab31900b6452fee6bcb40e91be7e4a221b8663f0 (diff)
downloadgstreamer-plugins-bad-115945b66366a875f9d848d8f463a9406a1bd514.tar.gz
mpeg4parser: prevent assertion when scanning for sync code
Only search if there is indeed enough data to be searched otherwise an assertion is raised
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/codecparsers/gstmpeg4parser.c7
1 files 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);