Commit 92a2cb38 authored by reimar's avatar reimar

Add more sanity checks for header elements, rejecting files with clearly

invalid values that wouldn't play right anyway and reduce probe score to MAX/2.
Passes probetest v2.


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19842 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 8452e47a
......@@ -42,13 +42,24 @@ typedef struct MaxisXADemuxContext {
static int xa_probe(AVProbeData *p)
{
int channels, srate, bits_per_sample;
if (p->buf_size < 24)
return 0;
switch(AV_RL32(p->buf)) {
case XA00_TAG:
case XAI0_TAG:
case XAJ0_TAG:
return AVPROBE_SCORE_MAX;
break;
default:
return 0;
}
return 0;
channels = AV_RL16(p->buf + 10);
srate = AV_RL32(p->buf + 12);
bits_per_sample = AV_RL16(p->buf + 22);
if (!channels || channels > 8 || !srate || srate > 192000 ||
bits_per_sample < 4 || bits_per_sample > 32)
return 0;
return AVPROBE_SCORE_MAX/2;
}
static int xa_read_header(AVFormatContext *s,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment