From 56f3193bd7897362139baef126feb6982443ad3e Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Mon, 18 Aug 2025 10:12:58 +0200 Subject: [PATCH] Port fix NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR to address out-of-bounds access --- lib_com/options.h | 1 + lib_rend/ivas_objectRenderer_sfx_fx.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index 49f6e68e9..e666308ca 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -122,6 +122,7 @@ #define NONBE_1360_LFE_DELAY /* Dlb: LFE delay alignment when rendering in CLDFB domain*/ #define NONBE_1229_FIX_ISM1_DPID /* Eri: issue 1229: fix bug causing ISM 1 to use default -dpid instead of the specified one */ #define NONBE_SVD_OPTIMIZATION +#define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ /* #################### End BASOP porting switches ############################ */ diff --git a/lib_rend/ivas_objectRenderer_sfx_fx.c b/lib_rend/ivas_objectRenderer_sfx_fx.c index 8967b89a2..a2f66839f 100644 --- a/lib_rend/ivas_objectRenderer_sfx_fx.c +++ b/lib_rend/ivas_objectRenderer_sfx_fx.c @@ -308,10 +308,15 @@ void TDREND_firfilt_fx( gain_tmp_fx = L_shl_sat( prevGain_fx, 1 ); // Q31 /* Handle memory */ - p_signal_fx = buffer_fx + sub( filterlength, 1 ); // Qx - Copy32( mem_fx, buffer_fx, sub( filterlength, 1 ) ); /* Insert memory */ // Qx + p_signal_fx = buffer_fx + sub( filterlength, 1 ); // Qx + Copy32( mem_fx, buffer_fx, sub( filterlength, 1 ) ); /* Insert memory */ // Qx +#ifdef NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR + Copy32( signal_fx, p_signal_fx, subframe_length ); /* Insert current frame */ // Qx + Copy32( p_signal_fx + add( sub( subframe_length, filterlength ), 1 ), mem_fx, sub( filterlength, 1 ) ); /* Update memory for next frame */ // Qx +#else Copy32( signal_fx, buffer_fx + sub( filterlength, 1 ), subframe_length ); /* Insert current frame */ // Qx Copy32( signal_fx + add( sub( subframe_length, filterlength ), 1 ), mem_fx, sub( filterlength, 1 ) ); /* Update memory for next frame */ // Qx +#endif /* Convolution */ FOR( i = 0; i < intp_count; i++ ) -- GitLab