From 30f4c58f6f92765b3d06b0950392e5264630bce0 Mon Sep 17 00:00:00 2001 From: "Reynaldo H. Verdejo Pinochet" Date: Thu, 23 Jan 2014 15:43:07 -0300 Subject: [PATCH] libavformat/mtv: Check for min header size first Abort immediately if we are not getting enough data to extract the required fields. Signed-off-by: Reynaldo H. Verdejo Pinochet --- libavformat/mtv.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavformat/mtv.c b/libavformat/mtv.c index 0517dd2d83..5e638cacec 100644 --- a/libavformat/mtv.c +++ b/libavformat/mtv.c @@ -52,12 +52,18 @@ typedef struct MTVDemuxContext { static int mtv_probe(AVProbeData *p) { + /* we need at least 57 bytes from the header + * to try parsing all required fields + */ + if (p->buf_size < 57) + return 0; + /* Magic is 'AMV' */ if (*p->buf != 'A' || *(p->buf + 1) != 'M' || *(p->buf + 2) != 'V') return 0; /* Check for nonzero in bpp and (width|height) header fields */ - if(p->buf_size < 57 || !(p->buf[51] && AV_RL16(&p->buf[52]) | AV_RL16(&p->buf[54]))) + if(!(p->buf[51] && AV_RL16(&p->buf[52]) | AV_RL16(&p->buf[54]))) return 0; /* If width or height are 0 then imagesize header field should not */