xa: abort if number of channels or sample rate is 0
authorPaul B Mahol <onemda@gmail.com>
Tue, 25 Jun 2013 22:24:55 +0000 (22:24 +0000)
committerPaul B Mahol <onemda@gmail.com>
Tue, 25 Jun 2013 22:24:55 +0000 (22:24 +0000)
Fixes #2711.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavformat/xa.c

index 437de3f..43661de 100644 (file)
@@ -84,6 +84,9 @@ static int xa_read_header(AVFormatContext *s)
     avio_skip(pb, 2);       /* Skip block align */
     avio_skip(pb, 2);       /* Skip bits-per-sample */
 
+    if (!st->codec->channels || !st->codec->sample_rate)
+        return AVERROR_INVALIDDATA;
+
     st->codec->bit_rate = av_clip(15LL * st->codec->channels * 8 *
                                   st->codec->sample_rate / 28, 0, INT_MAX);