Compiling ffmpeg I'v got this message: libavcodec/atrac3plus.c:1784:46: warning: array subscript is below array bounds [-Warray-bounds]
It's because compiler discards its suggestion about "ctx->num_quant_units" (1<=num_quant_units<=32) when "ctx" passed to "decode_quant_wordlen(gb, ctx, num_channels, avctx)" and anything can happen to fields of "ctx". Warning disappears if we place accessing to "trac3p_qu_to_subband[ctx->num_quant_units - 1]" before calling "decode_quant_wordlen(gb, ctx, num_channels, avctx)". Patch is in attachment. See also ticket #4343 (there patch is wrong!)
From 42f85eb3325f18ad46796d76da2760300a308a7e Mon Sep 17 00:00:00 2001 From: Ilya Gordeev <mirr...@rambler.ru> Date: Thu, 23 Apr 2015 01:45:03 +0500 Subject: [PATCH] avformat/atrac3plus: fix compilation warning Signed-off-by: Ilya Gordeev <mirr...@rambler.ru> --- libavcodec/atrac3plus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/atrac3plus.c b/libavcodec/atrac3plus.c index f998a7f..32350ac 100644 --- a/libavcodec/atrac3plus.c +++ b/libavcodec/atrac3plus.c @@ -1775,13 +1775,13 @@ int ff_atrac3p_decode_channel_unit(GetBitContext *gb, Atrac3pChanUnitCtx *ctx, return AVERROR_INVALIDDATA; } + ctx->num_subbands = atrac3p_qu_to_subband[ctx->num_quant_units - 1] + 1; ctx->mute_flag = get_bits1(gb); /* decode various sound parameters */ if ((ret = decode_quant_wordlen(gb, ctx, num_channels, avctx)) < 0) return ret; - ctx->num_subbands = atrac3p_qu_to_subband[ctx->num_quant_units - 1] + 1; ctx->num_coded_subbands = ctx->used_quant_units ? atrac3p_qu_to_subband[ctx->used_quant_units - 1] + 1 : 0; -- 2.3.1
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel