Commit d9e1e8e9 authored by fotopoulou's avatar fotopoulou
Browse files

Merge branch '616-ubsan-division-by-zero-in-mct-encoder' into 'main'

Resolve "UBSAN: Division by zero in MCT encoder"

See merge request !855
parents 09230908 b7934d3f
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -189,6 +189,8 @@
#define FIX_622_SILENCE_USAN_WARNING                    /* FhG: silenceusan warning in ifft code */

#define FIX_615_UBSAN_SPAR_TO_DIRAC                     /*Dlb : Fix for UBSAN issue 615*/
#define FIX_616_DIV_ZERO_MCT                            /*FhG : Fix UBSAN division by zero error of issue 616*/

/* ################## End BE DEVELOPMENT switches ######################### */


lib_enc/ivas_mct_core_enc.c

100755 → 100644
+5 −0
Original line number Diff line number Diff line
@@ -143,8 +143,13 @@ static void AdjustChannelRatios(
    }
    for ( i = 3; i < nChannels; i++ )
    {
#ifdef FIX_616_DIV_ZERO_MCT
        cur_ratio = (float) chBitRatios[i] / ( sum_ratio + FLT_MIN );
        tar_ratio = (float) force_ch_bit_ratios[i] / ( sum_tar_ratio + FLT_MIN );
#else
        cur_ratio = (float) chBitRatios[i] / sum_ratio;
        tar_ratio = (float) force_ch_bit_ratios[i] / sum_tar_ratio;
#endif

        tar_ratio = min( tar_ratio, cur_ratio );
        chBitRatios[i] = (int16_t) ( tar_ratio * sum_tar_ratio );