From 9a10acdb8466f56d9f53e21963bd96e32638d6ac Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 7 May 2026 09:25:42 +0200 Subject: [PATCH 1/2] [fix] set mem_hp20_out to NULL at init --- lib_com/options.h | 1 + lib_dec/ivas_init_dec.c | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib_com/options.h b/lib_com/options.h index c096f383c..ab867b201 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -165,6 +165,7 @@ #define FIX_2095_REMOVE_UNUSED_ISAR_TABLES /* Dolby: remove unused ISAR */ #define FIX_FLOAT_1582_STEREO_DFT_QUANTIZE_ITD /* FhG: float issue 1582: Remove unncessary statement from stereo_dft_quantize_itd() */ #define FIX_1585_ASAN_FORMAT_SW_ALT /* VA: float issue 1585: alternative fix memory leaks with format switching */ +#define FIX_MSAN_ASAN_FMSW_HP20 /* FhG: float issue 1593: fix msan/asan error with format switching memory changes */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index c3c3252aa..8d0763e1c 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -2327,7 +2327,7 @@ ivas_error ivas_init_decoder( set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); } -#ifdef FIX_1585_ASAN_FORMAT_SW_ALT +#if defined( FIX_1585_ASAN_FORMAT_SW_ALT ) && !defined( FIX_MSAN_ASAN_FMSW_HP20 ) for ( ; i < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; i++ ) { st_ivas->mem_hp20_out[i] = NULL; @@ -2905,6 +2905,9 @@ void ivas_initialize_handles_dec( for ( i = 0; i < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; i++ ) { st_ivas->p_output_f[i] = NULL; +#if defined( FIX_1585_ASAN_FORMAT_SW_ALT ) && defined( FIX_MSAN_ASAN_FMSW_HP20 ) + st_ivas->mem_hp20_out[i] = NULL; +#endif } return; -- GitLab From e6fde30d949b445a0a9e5ca26f52b09846ae97ab Mon Sep 17 00:00:00 2001 From: Archit Tamarapu Date: Thu, 7 May 2026 13:13:14 +0200 Subject: [PATCH 2/2] consolidate FIX_MSAN_ASAN_FMSW_HP20 into FIX_1585_ASAN_FORMAT_SW_ALT --- lib_com/options.h | 3 +-- lib_dec/ivas_init_dec.c | 8 +------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/lib_com/options.h b/lib_com/options.h index ab867b201..c9ceb6866 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -164,8 +164,7 @@ #define FIX_FLOAT_1539_G192_FORMAT_SWITCH /* Nokia: reintroduce format switching for g192 bitstreams */ #define FIX_2095_REMOVE_UNUSED_ISAR_TABLES /* Dolby: remove unused ISAR */ #define FIX_FLOAT_1582_STEREO_DFT_QUANTIZE_ITD /* FhG: float issue 1582: Remove unncessary statement from stereo_dft_quantize_itd() */ -#define FIX_1585_ASAN_FORMAT_SW_ALT /* VA: float issue 1585: alternative fix memory leaks with format switching */ -#define FIX_MSAN_ASAN_FMSW_HP20 /* FhG: float issue 1593: fix msan/asan error with format switching memory changes */ +#define FIX_1585_ASAN_FORMAT_SW_ALT /* VA,FhG: float issues 1585,1593: alternative fix memory leaks with format switching */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/ivas_init_dec.c b/lib_dec/ivas_init_dec.c index 8d0763e1c..ac80143c3 100644 --- a/lib_dec/ivas_init_dec.c +++ b/lib_dec/ivas_init_dec.c @@ -2327,12 +2327,6 @@ ivas_error ivas_init_decoder( set_f( st_ivas->mem_hp20_out[i], 0.0f, L_HP20_MEM ); } -#if defined( FIX_1585_ASAN_FORMAT_SW_ALT ) && !defined( FIX_MSAN_ASAN_FMSW_HP20 ) - for ( ; i < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; i++ ) - { - st_ivas->mem_hp20_out[i] = NULL; - } -#endif /*-------------------------------------------------------------------* * Allocate and initialize rendering handles @@ -2905,7 +2899,7 @@ void ivas_initialize_handles_dec( for ( i = 0; i < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; i++ ) { st_ivas->p_output_f[i] = NULL; -#if defined( FIX_1585_ASAN_FORMAT_SW_ALT ) && defined( FIX_MSAN_ASAN_FMSW_HP20 ) +#ifdef FIX_1585_ASAN_FORMAT_SW_ALT st_ivas->mem_hp20_out[i] = NULL; #endif } -- GitLab