avformat/adxdec: check avctx->channels for invalid values
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Wed, 25 Feb 2015 21:55:44 +0000 (22:55 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 13 Mar 2015 16:06:09 +0000 (17:06 +0100)
This avoids a null pointer dereference of pkt->data.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 7faa40af982960608b117e20fec999b48011e5e0)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/adxdec.c

index 49e1930..2cde39d 100644 (file)
@@ -41,6 +41,11 @@ static int adx_read_packet(AVFormatContext *s, AVPacket *pkt)
     AVCodecContext *avctx = s->streams[0]->codec;
     int ret, size;
 
+    if (avctx->channels <= 0) {
+        av_log(s, AV_LOG_ERROR, "invalid number of channels %d\n", avctx->channels);
+        return AVERROR_INVALIDDATA;
+    }
+
     size = BLOCK_SIZE * avctx->channels;
 
     pkt->pos = avio_tell(s->pb);