From 2fbc759d08cae97f9361e464a685a149c9d12c72 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 10 Nov 2013 16:04:33 +0100 Subject: [PATCH] avformat/diracdec: check 2 chunks in probe Fixes probetest failure Signed-off-by: Michael Niedermayer --- libavformat/diracdec.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/libavformat/diracdec.c b/libavformat/diracdec.c index 6636ead30d..e061ba5e8e 100644 --- a/libavformat/diracdec.c +++ b/libavformat/diracdec.c @@ -25,10 +25,19 @@ static int dirac_probe(AVProbeData *p) { - if (AV_RL32(p->buf) == MKTAG('B', 'B', 'C', 'D')) - return AVPROBE_SCORE_MAX; - else + unsigned size; + if (AV_RL32(p->buf) != MKTAG('B', 'B', 'C', 'D')) return 0; + + size = AV_RB32(p->buf+5); + if (size < 13) + return 0; + if (size + 13LL > p->buf_size) + return AVPROBE_SCORE_MAX / 4; + if (AV_RL32(p->buf + size) != MKTAG('B', 'B', 'C', 'D')) + return 0; + + return AVPROBE_SCORE_MAX; } FF_DEF_RAWVIDEO_DEMUXER(dirac, "raw Dirac", dirac_probe, NULL, AV_CODEC_ID_DIRAC)