Commit 9bcd1cb6 authored by bayers's avatar bayers
Browse files

Merge branch...

Merge branch '1012-asan-stack-buffer-overflow-in-osba_ism1_planarfoa-decoding-to-binaural' into 'main'

[Non-BE] Resolve "ASAN: stack-buffer-overflow in OSBA_ISM1_PlanarFOA decoding to BINAURAL"

See merge request !1422
parents f1b38ab5 c1109dfa
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@
#define NONBE_FIX_991_PARAMBIN_BINARY_HRTF                    /* Nokia: issue #991: fix using of binary file HRTF in ParamBin */
#define NONBE_FIX_1005_MC_RS_TCBUFFER_UPDATE                  /* FhG: issue #1005: fix TC Buffer update at a MC rate switch */
#define NONBE_FIX_864_JBM_RENDER_FRAMESIZE                    /* FhG: issue #864: fix different behaviour of JBM TSM with different render frame sizes */
#define NONBE_FIX_1012_1013_JBM_FLUSH_BUFFER                  /* FhG: issues #1012, 1013: JBM flush function uses wrong output buffer */
/* ##################### End NON-BE switches ########################### */

/* ################## End DEVELOPMENT switches ######################### */
+11 −0
Original line number Diff line number Diff line
@@ -1590,8 +1590,12 @@ ivas_error ivas_jbm_dec_flush_renderer(
    int16_t n_slots_still_available;
    int16_t n_samples_to_render;
    DECODER_TC_BUFFER_HANDLE hTcBuffer;
#ifdef NONBE_FIX_1012_1013_JBM_FLUSH_BUFFER
    float *p_output[MAX_CICP_CHANNELS + MAX_NUM_OBJECTS];
#else
    float output[MAX_CICP_CHANNELS][L_FRAME48k / MAX_PARAM_SPATIAL_SUBFRAMES];
    float *p_output[MAX_CICP_CHANNELS];
#endif

    if ( !st_ivas->hDecoderConfig->Opt_tsm )
    {
@@ -1636,10 +1640,17 @@ ivas_error ivas_jbm_dec_flush_renderer(
        hTcBuffer->n_samples_flushed = n_samples_to_render;
        hTcBuffer->n_samples_rendered = 0;

#ifdef NONBE_FIX_1012_1013_JBM_FLUSH_BUFFER
        for ( ch_idx = 0; ch_idx < MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS; ch_idx++ )
        {
            p_output[ch_idx] = st_ivas->p_output_f[ch_idx];
        }
#else
        for ( ch_idx = 0; ch_idx < MAX_CICP_CHANNELS; ch_idx++ )
        {
            p_output[ch_idx] = output[ch_idx];
        }
#endif

        if ( st_ivas->ivas_format == ISM_FORMAT )
        {