MSAN: use-of-uninitiallized-value in computeDirectionAngles function for OSBA to BINAURAL + JBM and rate switching
Basic info
- Commit SHA: 3d8045a9
Bug description
Clang MSAN sanitizer test in pipeline found an error:
==3455==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x1199970 in computeDirectionAngles /ivas-codec/lib_rend/ivas_dirac_rend.c:1776:14
#1 0x15b9841 in ivas_dirac_dec_render_sf /ivas-codec/lib_dec/ivas_dirac_dec.c:2021:13
#2 0xd05c5b in ivas_spar_dec_upmixer_sf /ivas-codec/lib_dec/ivas_spar_decoder.c:1660:9
#3 0xc933ad in ivas_sba_dec_render /ivas-codec/lib_dec/ivas_sba_dec.c:782:9
#4 0x9ef7b0 in ivas_jbm_dec_render /ivas-codec/lib_dec/ivas_jbm_dec.c:1138:28
#5 0x51c14e in IVAS_DEC_GetRenderedSamples /ivas-codec/lib_dec/lib_dec.c:2131:13
#6 0x51a9e7 in IVAS_DEC_GetSamplesRenderer /ivas-codec/lib_dec/lib_dec.c:1725:24
#7 0x543efb in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3694:28
#8 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#9 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#10 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#11 0x7f5b151dae3f in __libc_start_main csu/../csu/libc-start.c:392:3
#12 0x421534 in _start (/ivas-codec/CLANG1/IVAS_dec+0x421534)
Uninitialized value was stored to memory at
#0 0x124ff27 in ivas_td_decorr_APD_iir_filter /ivas-codec/lib_rend/ivas_td_decorr.c:417:21
#1 0x1252758 in ivas_td_decorr_APD_sections /ivas-codec/lib_rend/ivas_td_decorr.c:449:9
#2 0x125193d in ivas_td_decorr_process /ivas-codec/lib_rend/ivas_td_decorr.c:493:5
#3 0xcf93d4 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1330:17
#4 0xc8e648 in ivas_sba_dec_digest_tc /ivas-codec/lib_dec/ivas_sba_dec.c:672:9
#5 0xa1d8da in ivas_dec_prepare_renderer /ivas-codec/lib_dec/ivas_jbm_dec.c:2900:13
#6 0x517938 in IVAS_DEC_PrepareRenderer /ivas-codec/lib_dec/lib_dec.c:1604:5
#7 0x543a5d in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3687:32
#8 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#9 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#10 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
Uninitialized value was stored to memory at
#0 0x1ffe825 in mvr2r /ivas-codec/lib_com/tools.c:337:18
#1 0x125181b in ivas_td_decorr_process /ivas-codec/lib_rend/ivas_td_decorr.c:489:9
#2 0xcf93d4 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1330:17
#3 0xc8e648 in ivas_sba_dec_digest_tc /ivas-codec/lib_dec/ivas_sba_dec.c:672:9
#4 0xa1d8da in ivas_dec_prepare_renderer /ivas-codec/lib_dec/ivas_jbm_dec.c:2900:13
#5 0x517938 in IVAS_DEC_PrepareRenderer /ivas-codec/lib_dec/lib_dec.c:1604:5
#6 0x543a5d in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3687:32
#7 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#8 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#9 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
Uninitialized value was stored to memory at
#0 0x1251476 in ivas_td_decorr_process /ivas-codec/lib_rend/ivas_td_decorr.c:483:29
#1 0xcf93d4 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1330:17
#2 0xc8e648 in ivas_sba_dec_digest_tc /ivas-codec/lib_dec/ivas_sba_dec.c:672:9
#3 0xa1d8da in ivas_dec_prepare_renderer /ivas-codec/lib_dec/ivas_jbm_dec.c:2900:13
#4 0x517938 in IVAS_DEC_PrepareRenderer /ivas-codec/lib_dec/lib_dec.c:1604:5
#5 0x543a5d in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3687:32
#6 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#7 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#8 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
Uninitialized value was stored to memory at
#0 0x1ffe825 in mvr2r /ivas-codec/lib_com/tools.c:337:18
#1 0x201b5bc in delay_signal /ivas-codec/lib_com/tools.c:1778:5
#2 0x1250e24 in ivas_td_decorr_process /ivas-codec/lib_rend/ivas_td_decorr.c:474:5
#3 0xcf93d4 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1330:17
#4 0xc8e648 in ivas_sba_dec_digest_tc /ivas-codec/lib_dec/ivas_sba_dec.c:672:9
#5 0xa1d8da in ivas_dec_prepare_renderer /ivas-codec/lib_dec/ivas_jbm_dec.c:2900:13
#6 0x517938 in IVAS_DEC_PrepareRenderer /ivas-codec/lib_dec/lib_dec.c:1604:5
#7 0x543a5d in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3687:32
#8 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#9 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#10 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
Uninitialized value was stored to memory at
#0 0x1ffe825 in mvr2r /ivas-codec/lib_com/tools.c:337:18
#1 0x201b3d9 in delay_signal /ivas-codec/lib_com/tools.c:1775:5
#2 0x1250e24 in ivas_td_decorr_process /ivas-codec/lib_rend/ivas_td_decorr.c:474:5
#3 0xcf93d4 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1330:17
#4 0xc8e648 in ivas_sba_dec_digest_tc /ivas-codec/lib_dec/ivas_sba_dec.c:672:9
#5 0xa1d8da in ivas_dec_prepare_renderer /ivas-codec/lib_dec/ivas_jbm_dec.c:2900:13
#6 0x517938 in IVAS_DEC_PrepareRenderer /ivas-codec/lib_dec/lib_dec.c:1604:5
#7 0x543a5d in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3687:32
#8 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#9 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#10 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
Uninitialized value was stored to memory at
#0 0x1ffe4ae in mvr2r /ivas-codec/lib_com/tools.c:330:18
#1 0x201b4ab in delay_signal /ivas-codec/lib_com/tools.c:1776:5
#2 0x1250e24 in ivas_td_decorr_process /ivas-codec/lib_rend/ivas_td_decorr.c:474:5
#3 0xcf93d4 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1330:17
#4 0xc8e648 in ivas_sba_dec_digest_tc /ivas-codec/lib_dec/ivas_sba_dec.c:672:9
#5 0xa1d8da in ivas_dec_prepare_renderer /ivas-codec/lib_dec/ivas_jbm_dec.c:2900:13
#6 0x517938 in IVAS_DEC_PrepareRenderer /ivas-codec/lib_dec/lib_dec.c:1604:5
#7 0x543a5d in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:3687:32
#8 0x4bdde8 in decodeVoIP /ivas-codec/apps/decoder.c:3368:28
#9 0x4a7930 in main /ivas-codec/apps/decoder.c:779:17
#10 0x7f5b151dad8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
Uninitialized value was created by an allocation of 'pPcm_tmp' in the stack frame of function 'ivas_spar_dec_digest_tc'
#0 0xcf79f0 in ivas_spar_dec_digest_tc /ivas-codec/lib_dec/ivas_spar_decoder.c:1291
SUMMARY: MemorySanitizer: use-of-uninitialized-value /ivas-codec/lib_rend/ivas_dirac_rend.c:1776:14 in computeDirectionAngles
Exiting
Link to test pipeline: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/jobs/374363
Ways to reproduce
pipeline artifacts:
sanitizer-test-osba-foa-ism2--main--sha-3d8045a9.zip
Activate origin-tracking (more detailed traceback about where the undefined value came from) by appending
-fsanitize-memory-track-origins
in the Makefile
at lines 71 and 72. Note that this may increase runtime heavily.
Using the scripts:
python3 scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m OSBA_ISM2_PlanarFOA_ball_swb_rs -p /path/to/my/local/ci_linux_ltv_local.json -J dly_profile.dat -D="-T ./head_rot.traj.csv -exof ./exof_traj.csv"
or directly:
make clean
make -j CLANG=1
./IVAS_cod -ism_sba 2 -1 NULL NULL -max_band swb scripts/switchPaths/sw_13k2_512k.bin 32 ltv32_OSBA_2ISM_FOA.wav bit
networkSimulator_g192 dly_profile.dat bit bit_err trace_dump 1
./IVAS_dec -Tracefile ltv48_OSBA_2ISM_FOA_OSBA_ISM2_PlanarFOA_ball_swb_rs_jbm_dly_profile_dat.dec.BINAURAL.wav.tracefile_dec -VOIP -T ./head_rot_traj.csv -exof ./exof_traj.csv BINAURAL 32 bit out.wav
Edited by Jan Kiene