Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-11-12 22:37:37 +0400
committerMichael Niedermayer <michaelni@gmx.at>2013-11-12 22:37:37 +0400
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)