Skip to content

MSAN: use-of-uninitialized-value in OSBA planarFOA + ISM2 @48kbps PLC

Basic info

Bug description

Clang MSAN sanitizer test in pipeline found an error:

==8140==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x17292b8 in deemph /ivas-codec/lib_com/deemph.c:68:10
    #1 0x12e1e6e in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:595:5
    #2 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #3 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #4 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #5 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #6 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #7 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #8 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #9 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #10 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #11 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #12 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #13 0x7666222d3e3f in __libc_start_main csu/../csu/libc-start.c:392:3
    #14 0x421534 in _start (/ivas-codec/IVAS_dec+0x421534)

  Uninitialized value was stored to memory at
    #0 0x1be8e29 in lsp2a_stab /ivas-codec/lib_com/lsf_tools.c:762:16
    #1 0x12e1887 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:577:13
    #2 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #3 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #4 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #5 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #6 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #7 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #8 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #9 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #10 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #11 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #12 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x1be83cf in lsp2a_stab /ivas-codec/lib_com/lsf_tools.c:746:16
    #1 0x12e1887 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:577:13
    #2 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #3 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #4 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #5 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #6 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #7 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #8 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #9 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #10 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #11 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #12 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x1bea267 in get_lsppol /ivas-codec/lib_com/lsf_tools.c:569:14
    #1 0x1be7a2b in lsp2a_stab /ivas-codec/lib_com/lsf_tools.c:732:5
    #2 0x12e1887 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:577:13
    #3 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #4 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #5 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #6 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #7 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #8 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #9 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #10 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #11 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #12 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #13 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x1be9855 in get_lsppol /ivas-codec/lib_com/lsf_tools.c:561:11
    #1 0x1be7a2b in lsp2a_stab /ivas-codec/lib_com/lsf_tools.c:732:5
    #2 0x12e1887 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:577:13
    #3 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #4 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #5 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #6 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #7 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #8 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #9 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #10 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #11 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #12 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #13 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x12e1794 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:574:29
    #1 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #2 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #3 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #4 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #5 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #6 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #7 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #8 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #9 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #10 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #11 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x1be7235 in a2lsp_stab /ivas-codec/lib_com/lsf_tools.c:701:20
    #1 0x12e13d3 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:570:13
    #2 0x8dc850 in ivas_mdct_core_reconstruct /ivas-codec/lib_dec/ivas_mdct_core_dec.c:888:17
    #3 0xb7a170 in stereo_mdct_core_dec /ivas-codec/lib_dec/ivas_stereo_mdct_core_dec.c:358:5
    #4 0x139697b in ivas_core_dec /ivas-codec/lib_dec/ivas_core_dec.c:397:17
    #5 0x13c2c88 in ivas_cpe_dec /ivas-codec/lib_dec/ivas_cpe_dec.c:420:24
    #6 0x76d521 in ivas_jbm_dec_tc /ivas-codec/lib_dec/ivas_jbm_dec.c:461:28
    #7 0x4da379 in IVAS_DEC_GetTcSamples /ivas-codec/lib_dec/lib_dec.c:1300:24
    #8 0x4d431e in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:952:32
    #9 0x4f3aea in IVAS_DEC_VoIP_GetSamples /ivas-codec/lib_dec/lib_dec.c:2649:28
    #10 0x4b17b0 in decodeVoIP /ivas-codec/apps/decoder.c:3231:24
    #11 0x4a509c in main /ivas-codec/apps/decoder.c:829:17
    #12 0x7666222d3d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was created by an allocation of 'lsp_local' in the stack frame of function 'con_tcx'
    #0 0x12cef20 in con_tcx /ivas-codec/lib_dec/er_dec_tcx.c:64

This happens in frame 5364.

Link to test pipeline: https://forge.3gpp.org/rep/ivas-codec-pc/ivas-codec/-/jobs/238240

Ways to reproduce

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:

dly_profile.dat

python3 scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m OSBA_ISM2_PlanarFOA_b48_fb_cbr -p /path/to/my/local/ci_linux_ltv_local.json -J dly_profile.dat