From 5de4cf7f83f302092db43bf87a7d6c7a0711d0b6 Mon Sep 17 00:00:00 2001 From: malenov Date: Thu, 7 Mar 2024 14:49:39 +0100 Subject: [PATCH 1/2] fix USAN issue in GSC --- lib_com/options.h | 1 + lib_dec/gs_dec.c | 4 ++++ lib_enc/gs_enc.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 52901ec9c4..0c06d48288 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -159,6 +159,7 @@ #define FIX_998_UNUSED_FUNCTION /* FhG: issue 998: delete unused funtion ivas_dirac_dec_get_response_split_order */ #define FIX_1009_ISM_NONDIEGETIC_PANNING /* FhG: issue #1009: use correct object buffer for ISM1 non-diegetic pan */ #define FIX_993_REMOVE_SBA_GET_ORDER /* VA: issue 993: remove unused function ivas_sba_get_order() */ +#define FIX_1027_GSC_INT_OVERFLOW /* VA: issue 2207: overflow in GSC */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/gs_dec.c b/lib_dec/gs_dec.c index 936518dbbd..705694bc36 100644 --- a/lib_dec/gs_dec.c +++ b/lib_dec/gs_dec.c @@ -643,7 +643,11 @@ void gsc_dec( } if ( concat_out[j] < 0 ) { +#ifdef FIX_1027_GSC_INT_OVERFLOW + seed_init = ( int16_t )( (int32_t) seed_init + 3 ); +#else seed_init += 3; +#endif } } diff --git a/lib_enc/gs_enc.c b/lib_enc/gs_enc.c index b8b28f6b9b..cbf33ea970 100644 --- a/lib_enc/gs_enc.c +++ b/lib_enc/gs_enc.c @@ -545,7 +545,11 @@ void gsc_enc( } if ( concat_out[j] < 0 ) { +#ifdef FIX_1027_GSC_INT_OVERFLOW + seed_init = ( int16_t )( (int32_t) seed_init + 3 ); +#else seed_init += 3; +#endif } } -- GitLab From 74567f85dd532765e14b3bc1898e68130c8bb4b1 Mon Sep 17 00:00:00 2001 From: Vladimir Malenovsky Date: Thu, 7 Mar 2024 14:59:14 +0100 Subject: [PATCH 2/2] clang format --- lib_dec/gs_dec.c | 2 +- lib_enc/gs_enc.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_dec/gs_dec.c b/lib_dec/gs_dec.c index 705694bc36..7319a55615 100644 --- a/lib_dec/gs_dec.c +++ b/lib_dec/gs_dec.c @@ -644,7 +644,7 @@ void gsc_dec( if ( concat_out[j] < 0 ) { #ifdef FIX_1027_GSC_INT_OVERFLOW - seed_init = ( int16_t )( (int32_t) seed_init + 3 ); + seed_init = (int16_t) ( (int32_t) seed_init + 3 ); #else seed_init += 3; #endif diff --git a/lib_enc/gs_enc.c b/lib_enc/gs_enc.c index cbf33ea970..3ec78d8f11 100644 --- a/lib_enc/gs_enc.c +++ b/lib_enc/gs_enc.c @@ -546,7 +546,7 @@ void gsc_enc( if ( concat_out[j] < 0 ) { #ifdef FIX_1027_GSC_INT_OVERFLOW - seed_init = ( int16_t )( (int32_t) seed_init + 3 ); + seed_init = (int16_t) ( (int32_t) seed_init + 3 ); #else seed_init += 3; #endif -- GitLab