From 5307a8e85d6483eef346cd2a0b22d9e59fff2094 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Sun, 14 Dec 2025 19:16:01 +0100 Subject: [PATCH 1/2] add asserts to Log2_norm_lc() and log10_fx() --- lib_com/log2.c | 20 ++++++++++++++++++++ lib_com/options.h | 1 + 2 files changed, 21 insertions(+) diff --git a/lib_com/log2.c b/lib_com/log2.c index 42b1f1b3d..e92aca2d3 100644 --- a/lib_com/log2.c +++ b/lib_com/log2.c @@ -72,6 +72,10 @@ Word16 Log2_norm_lc( /* (o) : Fractional part of Log2. (range: 0<=val i = mac_r( L_x, -32 * 2 - 1, 16384 ); /* Extract b25-b31 minus 32 */ +#ifdef FIX_2284_ADD_ASSERT_LOG + assert( ( i >= 0 ) && ( i < (Word16) ( sizeof( L_table_Log2_norm_lc ) / sizeof( L_table_Log2_norm_lc[0] ) ) ) && ( i < (Word16) ( sizeof( table_diff_Log2_norm_lc ) / table_diff_Log2_norm_lc[0] ) ) ); +#endif + y = mac_r( L_table_Log2_norm_lc[i], table_diff_Log2_norm_lc[i], a ); /* table[i] << 16 - diff*a*2 */ return y; @@ -80,6 +84,9 @@ Word16 Log2_norm_lc( /* (o) : Fractional part of Log2. (range: 0<=val Word32 log10_fx( Word32 Linput ) /*o : Q23, i: 2Q13*/ { Word16 n1, frac, p1, p2, q1; +#ifdef FIX_2284_ADD_ASSERT_LOG + Word16 idx; +#endif Word32 Ltemp1, Ltemp2; Word32 L_tmp; @@ -94,10 +101,23 @@ Word32 log10_fx( Word32 Linput ) /*o : Q23, i: 2Q13*/ Ltemp2 = L_mult( extract_h( Ltemp1 ), 0x40 ); frac = extract_l( Ltemp2 ); +#ifdef FIX_2284_ADD_ASSERT_LOG + idx = sub( extract_h( Ltemp2 ), 0x20 ); + assert( idx >= 0 && idx < (Word16) ( sizeof( log2_tab ) / sizeof( log2_tab[0] ) ) ); + p1 = log2_tab[idx]; + move16(); + + idx = sub( extract_h( Ltemp2 ), 0x1F ); + assert( idx >= 0 && idx < (Word16) ( sizeof( log2_tab ) / sizeof( log2_tab[0] ) ) ); + p2 = log2_tab[idx]; + move16(); + +#else p1 = log2_tab[sub( extract_h( Ltemp2 ), 0x20 )]; move16(); p2 = log2_tab[sub( extract_h( Ltemp2 ), 0x1F )]; move16(); +#endif Ltemp2 = L_mult( n1, 0x200 ); n1 = extract_l( Ltemp2 ); diff --git a/lib_com/options.h b/lib_com/options.h index ee8c6be3a..215b51ed8 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -89,6 +89,7 @@ #define FIX_2252_SCALING_SAVE_HB_SYNTH /* VA: issue 2252: fix use-of-uninit-value in save_hb_synth_fx[] scaling in FOA decoding with bitstream that starts with an SID */ #define FIX_2248_EVS_ASSERT /* VA: Include _sat in an EVS related part of the code */ #define FIX_2254_IMPROV_COMPLEXITY_BE /* VA: BE small complexity reduction */ +#define FIX_2284_ADD_ASSERT_LOG /* FhG: add asserts to Log2_norm_lc() and log10_fx() */ /* #################### End BE switches ################################## */ -- GitLab From 78bfb3487b61812ecfeb396f6c5805e22bc8d0e8 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Sun, 14 Dec 2025 20:07:43 +0100 Subject: [PATCH 2/2] missing sizeof()-operator --- lib_com/log2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_com/log2.c b/lib_com/log2.c index e92aca2d3..55ea6aa40 100644 --- a/lib_com/log2.c +++ b/lib_com/log2.c @@ -73,7 +73,7 @@ Word16 Log2_norm_lc( /* (o) : Fractional part of Log2. (range: 0<=val i = mac_r( L_x, -32 * 2 - 1, 16384 ); /* Extract b25-b31 minus 32 */ #ifdef FIX_2284_ADD_ASSERT_LOG - assert( ( i >= 0 ) && ( i < (Word16) ( sizeof( L_table_Log2_norm_lc ) / sizeof( L_table_Log2_norm_lc[0] ) ) ) && ( i < (Word16) ( sizeof( table_diff_Log2_norm_lc ) / table_diff_Log2_norm_lc[0] ) ) ); + assert( ( i >= 0 ) && ( i < (Word16) ( sizeof( L_table_Log2_norm_lc ) / sizeof( L_table_Log2_norm_lc[0] ) ) ) && ( i < (Word16) ( sizeof( table_diff_Log2_norm_lc ) / sizeof( table_diff_Log2_norm_lc[0] ) ) ) ); #endif y = mac_r( L_table_Log2_norm_lc[i], table_diff_Log2_norm_lc[i], a ); /* table[i] << 16 - diff*a*2 */ -- GitLab