On 7 December 2012 14:23, Martin Storsjö <mar...@martin.st> wrote: > On Fri, 7 Dec 2012, Mans Rullgard wrote: > >> When LOCAL_ALIGNED uses manual alignment initialisation is not >> possible. >>
There's another case further down. diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c index 0ac870c..d47db48 100644 --- a/libavcodec/takdec.c +++ b/libavcodec/takdec.c @@ -601,10 +601,12 @@ static int decorrelate(TAKDecContext *s, int c1, int c2, int length) case 6: FFSWAP(int32_t*, p1, p2); case 7: { - LOCAL_ALIGNED_16(int16_t, filter, [MAX_PREDICTORS]) = { 0 }; + LOCAL_ALIGNED_16(int16_t, filter, [MAX_PREDICTORS]); int length2, order_half, filter_order, dval1, dval2; int av_uninit(code_size); + memset(filter, 0, MAX_PREDICTORS * sizeof(*filter)); + if (length < 256) return AVERROR_INVALIDDATA; >> Signed-off-by: Mans Rullgard <m...@mansr.com> >> --- >> libavcodec/takdec.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/libavcodec/takdec.c b/libavcodec/takdec.c >> index 87fcf83..0ac870c 100644 >> --- a/libavcodec/takdec.c >> +++ b/libavcodec/takdec.c >> @@ -420,11 +420,13 @@ static void decode_filter_coeffs(TAKDecContext *s, >> int filter_order, int size, >> static int decode_subframe(TAKDecContext *s, int32_t *decoded, >> int subframe_size, int prev_subframe_size) >> { >> - LOCAL_ALIGNED_16(int16_t, filter, [MAX_PREDICTORS]) = { 0, }; >> + LOCAL_ALIGNED_16(int16_t, filter, [MAX_PREDICTORS]); >> GetBitContext *gb = &s->gb; >> int i, ret; >> int dshift, size, filter_quant, filter_order; >> >> + memset(filter, 0, MAX_PREDICTORS * sizeof(*filter)); >> + >> if (!get_bits1(gb)) >> return decode_residues(s, decoded, subframe_size); >> >> -- >> 1.8.0 > > > Looks good to me > > // Martin > > _______________________________________________ > libav-devel mailing list > libav-devel@libav.org > https://lists.libav.org/mailman/listinfo/libav-devel _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel