Skip to content

Out-of-bounds access in ivas_jbm_dec.c

Basic info

  • Fixed point:

Bug description

One pytest stv test case fails: tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 7_1_4 bitrate switching, 48kHz in, 48kHz out, BINAURAL out, HR, JBM Prof 5]

This test case has 12 MCT signals as transport channels (7.1+4) and turns them into 16 HOA Order 3 channels before rendering to Binaural output. In the course of transforming from MCT to HOA, the number of channels gets confused and we end up accessing the MCT transport channels vector above the 12 valid channels. This causes the decoder to crash and the pytest to fail.

A fix exists already, and needs to be tested.

Ways to reproduce

IVAS_dec.exe -fr 20 -T .\headrot.csv -no_delay_cmp -Tracefile ./stv714MC48c.wav_Multi_channel_7_1_4_bitrate_switching_48kHz_in_48kHz_out_BINAURAL_out_HR_JBM_Prof_5.dectrace -VOIP BINAURAL 48 ./stv714MC48c.wav_Multi_channel_7_1_4_bitrate_switching_48kHz_in_48kHz_out_BINAURAL_out_HR_JBM_Prof_5.netsimout ./stv714MC48c.wav_Multi_channel_7_1_4_bitrate_switching_48kHz_in_48kHz_out_BINAURAL_out_HR_JBM_Prof_5.dec.wav

Alternatively, run the pytests:
pytest "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 7_1_4 bitrate switching, 48kHz in, 48kHz out, BINAURAL out, HR, JBM Prof 5]"

headrot.csv

stv714MC48c.wav_Multi_channel_7_1_4_bitrate_switching_48kHz_in_48kHz_out_BINAURAL_out_HR_JBM_Prof_5.dectrace

stv714MC48c.wav_Multi_channel_7_1_4_bitrate_switching_48kHz_in_48kHz_out_BINAURAL_out_HR_JBM_Prof_5.netsimout

Edited by Michael Sturm