summaryrefslogtreecommitdiff
path: root/libavformat/smacker.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-11-12 19:37:37 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-11-12 19:37:37 +0100
commit0062869ae25007c8506517dcfcbe6f439dc6958a (patch)
tree31020ef7ef4991a8ce410b39c6c16ab7332b5ce1 /libavformat/smacker.c
parent7b1e0beb2da31a0a8847bc9c68a87a120b71fa8a (diff)
avformat/smacker: check width/height in probe
Fixes probetest failure Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/smacker.c')
-rw-r--r--libavformat/smacker.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libavformat/smacker.c b/libavformat/smacker.c
index 527faf7dd8..0d38588e21 100644
--- a/libavformat/smacker.c
+++ b/libavformat/smacker.c
@@ -92,11 +92,14 @@ static const uint8_t smk_pal[64] = {
static int smacker_probe(AVProbeData *p)
{
- if(p->buf[0] == 'S' && p->buf[1] == 'M' && p->buf[2] == 'K'
- && (p->buf[3] == '2' || p->buf[3] == '4'))
- return AVPROBE_SCORE_MAX;
- else
+ if ( AV_RL32(p->buf) != MKTAG('S', 'M', 'K', '2')
+ && AV_RL32(p->buf) != MKTAG('S', 'M', 'K', '4'))
return 0;
+
+ if (AV_RL32(p->buf+4) > 32768U || AV_RL32(p->buf+8) > 32768U)
+ return AVPROBE_SCORE_MAX/4;
+
+ return AVPROBE_SCORE_MAX;
}
static int smacker_read_header(AVFormatContext *s)