diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 4f94f5f5c9..c7c11c9e5f 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -223,10 +223,13 @@ static int count_paired_channels(uint8_t (*layout_map)[3], int tags, int pos, in static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags) { int i, n, total_non_cc_elements; - struct elem_to_channel e2c_vec[MAX_ELEM_ID] = {{ 0 }}; + struct elem_to_channel e2c_vec[4*MAX_ELEM_ID] = {{ 0 }}; int num_front_channels, num_side_channels, num_back_channels; uint64_t layout; + if (FF_ARRAY_ELEMS(e2c_vec) < tags) + return 0; + i = 0; num_front_channels = count_paired_channels(layout_map, tags, AAC_CHANNEL_FRONT, &i);