Check output buffer size before decoding.
authorVitor Sessak <vitor1001@gmail.com>
Sun, 7 Sep 2008 20:21:15 +0000 (20:21 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Sun, 7 Sep 2008 20:21:15 +0000 (20:21 +0000)
Originally committed as revision 15257 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mace.c

index 6e7a128..8651744 100644 (file)
@@ -235,6 +235,11 @@ static int mace3_decode_frame(AVCodecContext *avctx,
     MACEContext *ctx = avctx->priv_data;
     int i, j, k;
 
+    if (*data_size < 2 * 3 * buf_size) {
+        av_log(avctx, AV_LOG_ERROR, "Output buffer too small!\n");
+        return -1;
+    }
+
     for(i = 0; i < avctx->channels; i++) {
         int16_t *output = samples + i;
 
@@ -266,6 +271,11 @@ static int mace6_decode_frame(AVCodecContext *avctx,
     MACEContext *ctx = avctx->priv_data;
     int i, j;
 
+    if (*data_size < 2 * 6 * buf_size) {
+        av_log(avctx, AV_LOG_ERROR, "Output buffer too small!\n");
+        return -1;
+    }
+
     for(i = 0; i < avctx->channels; i++) {
         int16_t *output = samples + i;