diff --git a/libavformat/dxa.c b/libavformat/dxa.c index 5b6cd67b59..a68d4c4efb 100644 --- a/libavformat/dxa.c +++ b/libavformat/dxa.c @@ -36,9 +36,15 @@ typedef struct{ static int dxa_probe(AVProbeData *p) { + int w, h; + if (p->buf_size < 15) + return 0; + w = AV_RB16(p->buf + 11); + h = AV_RB16(p->buf + 13); /* check file header */ if (p->buf[0] == 'D' && p->buf[1] == 'E' && - p->buf[2] == 'X' && p->buf[3] == 'A') + p->buf[2] == 'X' && p->buf[3] == 'A' && + w && w <= 2048 && h && h <= 2048) return AVPROBE_SCORE_MAX; else return 0;