[FFmpeg-cvslog] avcodec/wmaprodec: check number of channels for XMA streams

Paul B Mahol git at videolan.org
Thu Jan 19 16:44:40 EET 2017


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Thu Jan 19 15:42:47 2017 +0100| [45f4bf94afb8b70d99fb7b5760fd65f5c3ad8b88] | committer: Paul B Mahol

avcodec/wmaprodec: check number of channels for XMA streams

Signed-off-by: Paul B Mahol <onemda at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=45f4bf94afb8b70d99fb7b5760fd65f5c3ad8b88
---

 libavcodec/wmaprodec.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
index b0d3ede..55a4807 100644
--- a/libavcodec/wmaprodec.c
+++ b/libavcodec/wmaprodec.c
@@ -1825,8 +1825,13 @@ static av_cold int xma_decode_init(AVCodecContext *avctx)
     XMADecodeCtx *s = avctx->priv_data;
     int i, ret;
 
-    for (i = 0; i < avctx->channels / 2; i++) {
+    if (avctx->channels <= 0 || avctx->channels > 8)
+        return AVERROR_INVALIDDATA;
+
+    for (i = 0; i < (avctx->channels + 1) / 2; i++) {
         ret = decode_init(&s->xma[i], avctx);
+        if (ret < 0)
+            return ret;
         s->frames[i] = av_frame_alloc();
         if (!s->frames[i])
             return AVERROR(ENOMEM);



More information about the ffmpeg-cvslog mailing list