Skip to content

[CLANG18] MSAN: use-of-uninitialized-value in lib_dec/hq_hr_dec.c:284:5

Basic info

Bug description

⚠️ this is only triggered once #1486 is fixed, so for reproduction one needs the branch float-1486-clang18-msan-use-of-uninitialized-value-in-lib_com-ivas_tools-c-134-23 ⚠️

Clang 18 MSAN triggers the following error:

==8502==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55fc4e923a75 in hq_hr_dec /ivas-codec/lib_dec/hq_hr_dec.c:284:5
    #1 0x55fc4e90e681 in hq_core_dec /ivas-codec/lib_dec/hq_core_dec.c:252:13
    #2 0x55fc4f5bb00d in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:369:13
    #3 0x55fc4f5f0d2d in stereo_dft_dec_main /ivas-codec/lib_dec/ivas_cpe_dec.c:613:20
    #4 0x55fc4f5e9e4d in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:454:24
    #5 0x55fc4ea46168 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:235:28
    #6 0x55fc4e56170b in IVAS_DEC_GetSamplesDecoder /ivas-codec/lib_dec/lib_dec.c:1201:28
    #7 0x55fc4e5aa4c5 in ivas_dec_voip_get_samples_common /ivas-codec/lib_dec/lib_dec.c:4066:36
    #8 0x55fc4e5a543e in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:4164:12
    #9 0x55fc4e51a952 in decodeVoIP /ivas-codec/apps/decoder.c:3557:32
    #10 0x55fc4e501120 in main /ivas-codec/apps/decoder.c:786:17
    #11 0x7fbd8caee1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #12 0x7fbd8caee28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #13 0x55fc4e460634 in _start (/ivas-codec/IVAS_dec+0x3a634) (BuildId: 1729e10dcec674c11c35ed79a97ac3355c3d8948)

  Uninitialized value was stored to memory at
    #0 0x55fc4e923a6e in hq_hr_dec /ivas-codec/lib_dec/hq_hr_dec.c:284:65
    #1 0x55fc4e90e681 in hq_core_dec /ivas-codec/lib_dec/hq_core_dec.c:252:13
    #2 0x55fc4f5bb00d in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:369:13
    #3 0x55fc4f5f0d2d in stereo_dft_dec_main /ivas-codec/lib_dec/ivas_cpe_dec.c:613:20
    #4 0x55fc4f5e9e4d in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:454:24
    #5 0x55fc4ea46168 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:235:28
    #6 0x55fc4e56170b in IVAS_DEC_GetSamplesDecoder /ivas-codec/lib_dec/lib_dec.c:1201:28
    #7 0x55fc4e5aa4c5 in ivas_dec_voip_get_samples_common /ivas-codec/lib_dec/lib_dec.c:4066:36
    #8 0x55fc4e5a543e in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:4164:12
    #9 0x55fc4e51a952 in decodeVoIP /ivas-codec/apps/decoder.c:3557:32
    #10 0x55fc4e501120 in main /ivas-codec/apps/decoder.c:786:17
    #11 0x7fbd8caee1c9 in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #12 0x7fbd8caee28a in __libc_start_main csu/../csu/libc-start.c:360:3
    #13 0x55fc4e460634 in _start (/ivas-codec/IVAS_dec+0x3a634) (BuildId: 1729e10dcec674c11c35ed79a97ac3355c3d8948)

  Uninitialized value was created by an allocation of 'num_env_bands' in the stack frame
    #0 0x55fc4e91dbe0 in hq_hr_dec /ivas-codec/lib_dec/hq_hr_dec.c:127:5

SUMMARY: MemorySanitizer: use-of-uninitialized-value /ivas-codec/lib_dec/hq_hr_dec.c:284:5 in hq_hr_dec

Ways to reproduce

⚠️ depends on fix for #1486 , you need branch float-1486-clang18-msan-use-of-uninitialized-value-in-lib_com-ivas_tools-c-134-23 ⚠️

bit

git checkout float-1486-clang18-msan-use-of-uninitialized-value-in-lib_com-ivas_tools-c-134-23
make clean
make -j CLANG=1
./IVAS_dec -fr 20 -VOIP_hf_only=1 BINAURAL 48 bit out.wav