Skip to content

Msan error in stereo rate switching with DTX

Basic info

  • Commit SHA: main, tested at 34c6b03f
  • Platform: Linux

Bug description

Memory sanitizer complains for rate switching mode with DTX active for one of the new longer testvectors:

Frames processed:       2239    ==2996391==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x175ed2e in hp20 /local/knj/ivas-codec/lib_com/hp50.c:128:14
    #1 0x7868cb in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:130:13
    #2 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #3 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #4 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #5 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)
    #6 0x41f5a9 in _start (/local/knj/ivas-codec/IVAS_dec+0x41f5a9)

  Uninitialized value was stored to memory at
    #0 0xc7fb82 in filter_with_allpass /local/knj/ivas-codec/lib_dec/ivas_stereo_esf_dec.c:116:16
    #1 0x12a3c1e in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:550:9
    #2 0x11be805 in ivas_core_dec /local/knj/ivas-codec/lib_dec/ivas_core_dec.c:708:13
    #3 0x11cad40 in ivas_cpe_dec /local/knj/ivas-codec/lib_dec/ivas_cpe_dec.c:386:24
    #4 0x786238 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:122:24
    #5 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #6 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #7 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #8 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0xc7fa69 in filter_with_allpass /local/knj/ivas-codec/lib_dec/ivas_stereo_esf_dec.c:114:12
    #1 0x12a3c1e in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:550:9
    #2 0x11be805 in ivas_core_dec /local/knj/ivas-codec/lib_dec/ivas_core_dec.c:708:13
    #3 0x11cad40 in ivas_cpe_dec /local/knj/ivas-codec/lib_dec/ivas_cpe_dec.c:386:24
    #4 0x786238 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:122:24
    #5 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #6 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #7 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #8 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0xc7f367 in filter_with_allpass /local/knj/ivas-codec/lib_dec/ivas_stereo_esf_dec.c:110:12
    #1 0x12a3c1e in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:550:9
    #2 0x11be805 in ivas_core_dec /local/knj/ivas-codec/lib_dec/ivas_core_dec.c:708:13
    #3 0x11cad40 in ivas_cpe_dec /local/knj/ivas-codec/lib_dec/ivas_cpe_dec.c:386:24
    #4 0x786238 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:122:24
    #5 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #6 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #7 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #8 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x1c21966 in mvr2r /local/knj/ivas-codec/lib_com/tools.c:335:18
    #1 0x1c3f491 in delay_signal /local/knj/ivas-codec/lib_com/tools.c:1720:5
    #2 0x12a2b0d in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:505:9
    #3 0x11be805 in ivas_core_dec /local/knj/ivas-codec/lib_dec/ivas_core_dec.c:708:13
    #4 0x11cad40 in ivas_cpe_dec /local/knj/ivas-codec/lib_dec/ivas_cpe_dec.c:386:24
    #5 0x786238 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:122:24
    #6 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #7 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #8 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #9 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x12a208a in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:486:34
    #1 0x11be805 in ivas_core_dec /local/knj/ivas-codec/lib_dec/ivas_core_dec.c:708:13
    #2 0x11cad40 in ivas_cpe_dec /local/knj/ivas-codec/lib_dec/ivas_cpe_dec.c:386:24
    #3 0x786238 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:122:24
    #4 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #5 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #6 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #7 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x1c21608 in mvr2r /local/knj/ivas-codec/lib_com/tools.c:328:18
    #1 0x12a1c8f in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:483:17
    #2 0x11be805 in ivas_core_dec /local/knj/ivas-codec/lib_dec/ivas_core_dec.c:708:13
    #3 0x11cad40 in ivas_cpe_dec /local/knj/ivas-codec/lib_dec/ivas_cpe_dec.c:386:24
    #4 0x786238 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:122:24
    #5 0x56e32b in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:649:24
    #6 0x4adef5 in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1245:24
    #7 0x49ce03 in main /local/knj/ivas-codec/apps/decoder.c:514:17
    #8 0x7f62fc064d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was created by an allocation of 'tcx_core_buf' in the stack frame of function 'stereo_dft_dec_core_switching'
    #0 0x12946a0 in stereo_dft_dec_core_switching /local/knj/ivas-codec/lib_dec/ivas_post_proc.c:170

Note that you need to add -fsanitize-memory-track-origins to line 76 of Makefileto get the origin trace.

Ways to reproduce

Get longer testvectors from the testfile repo:

git clone git@forge.3gpp.org:ivas-codec-pc/ivas-pc-testfiles.git

Then

python3 ./scripts/runIvasCodec.py -p ~/your-config.json -m stereo_b24_64_dtx_swb_rs -I ivas-pc-testfiles/testv/ltv48_STEREO.wav -o out_msan
cat out_msan/logs/ltv48_STEREO_stereo_b24_64_dtx_swb_rs.dec.STEREO.txt