on2avc: check number of channels

Message ID 20141219070632.C20AE5DCC2@aruru.libav.org
State New
Headers show

Commit Message

Janne Grunau Dec. 19, 2014, 7:06 a.m.
Module: libav
Branch: master
Commit: cee4490b521fd0d02476d46aa2598af24fb8d686

Author:    Michael Niedermayer <michaelni@gmx.at>
Committer: Anton Khirnov <anton@khirnov.net>
Date:      Sat Oct  4 22:15:07 2014 +0200

on2avc: check number of channels

Fixes invalid memory access.

CC: libav-stable@libav.org
Bug-ID: CVE-2014-8549
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>

---

 libavcodec/on2avc.c |    4 ++++
 1 file changed, 4 insertions(+)

Patch

diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c
index deaa2b4..c00339f 100644
--- a/libavcodec/on2avc.c
+++ b/libavcodec/on2avc.c
@@ -918,6 +918,10 @@  static av_cold int on2avc_decode_init(AVCodecContext *avctx)
         av_log(avctx, AV_LOG_ERROR, "0x500 version should be mono\n");
         return AVERROR_INVALIDDATA;
     }
+    if (avctx->channels > 2) {
+        av_log(avctx, AV_LOG_ERROR, "Only 1 or 2 channels are supported.\n");
+        return AVERROR(EINVAL);
+    }
     if (avctx->channels == 2)
         av_log(avctx, AV_LOG_WARNING,
                "Stereo mode support is not good, patch is welcome\n");