OSDN Git Service

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>
Thu, 26 Feb 2015 20:02:13 +0000 (21:02 +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 0a0436f..e5caa09 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);