From d406776d83a3ca66a2a7ab568afc696e026fc58c Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Fri, 27 Feb 2026 15:52:13 +0100 Subject: [PATCH 1/2] avoid indexing into null pointer in renderer --- lib_com/options.h | 1 + lib_rend/ivas_objectRenderer_fx.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 20cc81e20..9be7c3f90 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -98,6 +98,7 @@ #define FIX_2431_AVOID_CALLOC /* VA: basp issue 2431: avoid use of calloc() */ #define FIX_2424_REMOVE_GAUSS_L2_ENC /* VA: basop issue 2424: Remove duplicated code in gauss_L2_ivas_fx() */ #define FIX_MDCT_STEREO_ENC_STACK /* VA: basop issue 2428: Move IGF temporary buffers out of the highest stack */ +#define FIX_2458_USAN_NULLPTR_WITH_ZERO_OFFSET /* FhG: basop issue 2458: avoid indexing into null pointer */ /* #################### End BE switches ################################## */ diff --git a/lib_rend/ivas_objectRenderer_fx.c b/lib_rend/ivas_objectRenderer_fx.c index 6d6c9ba5f..03ce31b5a 100644 --- a/lib_rend/ivas_objectRenderer_fx.c +++ b/lib_rend/ivas_objectRenderer_fx.c @@ -421,9 +421,18 @@ ivas_error ivas_td_binaural_renderer_unwrap_fx( tmp_headRotEnabled = enableCombinedOrientation[hCombinedOrientationData->subframe_idx]; move16(); tmp_CombinedOrient_subframe_idx = hCombinedOrientationData->subframe_idx; + move16(); +#ifdef FIX_2458_USAN_NULLPTR_WITH_ZERO_OFFSET + Quaternions = Quaternions + tmp_CombinedOrient_subframe_idx; + Pos = Pos + tmp_CombinedOrient_subframe_idx; +#endif } +#ifdef FIX_2458_USAN_NULLPTR_WITH_ZERO_OFFSET + IF( NE_32( ( error = TDREND_Update_listener_orientation_fx( hBinRendererTd, tmp_headRotEnabled, Quaternions, Pos ) ), IVAS_ERR_OK ) ) +#else IF( NE_32( ( error = TDREND_Update_listener_orientation_fx( hBinRendererTd, tmp_headRotEnabled, &Quaternions[tmp_CombinedOrient_subframe_idx], &Pos[tmp_CombinedOrient_subframe_idx] ) ), IVAS_ERR_OK ) ) +#endif { return error; } -- GitLab From 6840c7b3c92dcdefbbb591381c2744d47cbf5594 Mon Sep 17 00:00:00 2001 From: Jan Kiene Date: Fri, 27 Feb 2026 16:52:41 +0100 Subject: [PATCH 2/2] use direct check for NULL instead, old fix was incorrect --- lib_rend/ivas_objectRenderer_fx.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib_rend/ivas_objectRenderer_fx.c b/lib_rend/ivas_objectRenderer_fx.c index 03ce31b5a..49836f2d1 100644 --- a/lib_rend/ivas_objectRenderer_fx.c +++ b/lib_rend/ivas_objectRenderer_fx.c @@ -422,14 +422,10 @@ ivas_error ivas_td_binaural_renderer_unwrap_fx( move16(); tmp_CombinedOrient_subframe_idx = hCombinedOrientationData->subframe_idx; move16(); -#ifdef FIX_2458_USAN_NULLPTR_WITH_ZERO_OFFSET - Quaternions = Quaternions + tmp_CombinedOrient_subframe_idx; - Pos = Pos + tmp_CombinedOrient_subframe_idx; -#endif } #ifdef FIX_2458_USAN_NULLPTR_WITH_ZERO_OFFSET - IF( NE_32( ( error = TDREND_Update_listener_orientation_fx( hBinRendererTd, tmp_headRotEnabled, Quaternions, Pos ) ), IVAS_ERR_OK ) ) + IF( NE_32( ( error = TDREND_Update_listener_orientation_fx( hBinRendererTd, tmp_headRotEnabled, ( Quaternions != NULL ) ? &Quaternions[tmp_CombinedOrient_subframe_idx] : NULL, ( Pos != NULL ) ? &Pos[tmp_CombinedOrient_subframe_idx] : NULL ) ), IVAS_ERR_OK ) ) #else IF( NE_32( ( error = TDREND_Update_listener_orientation_fx( hBinRendererTd, tmp_headRotEnabled, &Quaternions[tmp_CombinedOrient_subframe_idx], &Pos[tmp_CombinedOrient_subframe_idx] ) ), IVAS_ERR_OK ) ) #endif -- GitLab