From a337f67e3e6aaa7c22a455d1bb65d52dc4e1c34a Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Fri, 10 Jan 2025 14:12:31 +0530 Subject: [PATCH] Fix for 3GPP issue 1141: Overflow in W_extract_l - Part 2 Link #1141 --- lib_enc/cod4t64_fast.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/lib_enc/cod4t64_fast.c b/lib_enc/cod4t64_fast.c index 1a1383d41..93bcc1ce3 100644 --- a/lib_enc/cod4t64_fast.c +++ b/lib_enc/cod4t64_fast.c @@ -770,7 +770,30 @@ void acelp_fast_fx( alp_pos3++; } - i = emaximum_32fx( Q_dn, dn, L_subfr, &L_tmp1 ); + Word16 k; + Word64 W_tmp, W_tmp1; + Word64 emax; + + emax = W_mult0_32_32( dn[0], dn[0] ); + i = 0; + move16(); + + FOR( k = 1; k < L_subfr; k++ ) + { + W_tmp = W_mult0_32_32( dn[k], dn[k] ); + W_tmp1 = W_sub( W_tmp, emax ); + if ( W_tmp1 > 0 ) + { + i = k; + move16(); + } + if ( LE_64( emax, W_tmp ) ) + { + emax = W_tmp; + move64(); + } + } + track = i % nb_tracks; move16(); -- GitLab