Commit 94dfbd9e authored by fotopoulou's avatar fotopoulou
Browse files

[fix] issue 616: UBSAN division by zero error in MCT

parent 92b9bbcd
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -211,6 +211,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 ######################### */


+6 −1
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 );