Commit 0688c396 authored by emerit's avatar emerit
Browse files

Merge branch 'basop-2570-ASAN-global-buffer-overflow-in-ivas_objectRenderer_sources_fx' into 'main'

Basop 2570 asan global buffer overflow in ivas objectrenderer sources fx

See merge request !2626
parents 2afa4141 c7cb75dd
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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,FhG: float issues 1585,1593: alternative fix memory leaks with format switching */
#define FIX_2570_BUF_OVFL                               /* Orange: basop issue 2570: global-buffer-overflow in lib_rend/ivas_objectRenderer_sources_fx.c */

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

+2 −3
Original line number Diff line number Diff line
@@ -227,9 +227,8 @@ void ivas_apply_non_diegetic_panning(
    const int16_t output_frame         /* i  : output frame length per channel      */
)
{
    float pan_left, pan_right;

    float pan = ( non_diegetic_pan_gain + 1.f ) * 0.5f;
    float pan_left, pan_right, pan;
    pan = ( non_diegetic_pan_gain + 1.f ) * 0.5f;
    pan_left = sinf( pan * EVS_PI * 0.5f );
    pan_right = cosf( pan * EVS_PI * 0.5f );
    v_multc( input_f, pan_right, output_f[1], output_frame );
+19 −0
Original line number Diff line number Diff line
@@ -318,6 +318,9 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams(
#ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW
    float pan;
#endif
#ifdef FIX_2570_BUF_OVFL
    float wrapped_angle; // -90 <= wrapped_angle <= 90
#endif

    /* Evaluate the HR filters from the source and listener positions and orientations */
    Listener_p = hBinRendererTd->Listener_p;
@@ -392,7 +395,23 @@ void TDREND_SRC_REND_UpdateFiltersFromSpatialParams(
        set_f( hrf_left, 0.0f, *filterlength );
        set_f( hrf_right, 0.0f, *filterlength );
#ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW
#ifdef FIX_2570_BUF_OVFL
        if ( SrcSpatial_p->Pos_p[1] < -1.f )
        {
            wrapped_angle = -2.f - SrcSpatial_p->Pos_p[1];
        }
        else if ( SrcSpatial_p->Pos_p[1] > 1.f )
        {
            wrapped_angle = 2.f - SrcSpatial_p->Pos_p[1];
        }
        else
        {
            wrapped_angle = SrcSpatial_p->Pos_p[1];
        }
        pan = ( wrapped_angle + 1.f ) * 0.5f;
#else
        pan = ( SrcSpatial_p->Pos_p[1] + 1.f ) * 0.5f;
#endif
        hrf_left[0] = sinf( pan * EVS_PI * 0.5f );
        hrf_right[0] = cosf( pan * EVS_PI * 0.5f );
#else
+1 −0
Original line number Diff line number Diff line
@@ -6012,6 +6012,7 @@ static ivas_error renderIsmToMc(
    float pan;
#endif


    push_wmops( "renderIsmToMc" );

    position_changed = !ismInput->firstFrameRendered || checkObjectPositionChanged( &ismInput->currentPos, &ismInput->previousPos );