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 Makefile
to 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