diff --git a/libavcodec/mace.c b/libavcodec/mace.c index 6e7a12812b..8651744726 100644 --- a/libavcodec/mace.c +++ b/libavcodec/mace.c @@ -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;