Skip to content

Msan error in SBA rate switching when decoding to stereo

Basic info

Bug description

Clang msan sanitizer test in pipeline found an error:

==442169==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x192711e in hp20 /local/knj/ivas-codec2/lib_com/hp50.c:127:14
    #1 0x744a1a in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:460:13
    #2 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #3 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #4 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #5 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)
    #6 0x41f5a9 in _start (/local/knj/ivas-codec2/IVAS_dec+0x41f5a9)

  Uninitialized value was stored to memory at
    #0 0xb8b47a in ivas_sba_dirac_stereo_smooth_parameters /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:771:96
    #1 0xc7dc17 in stereo_dft_dec /local/knj/ivas-codec2/lib_dec/ivas_stereo_dft_dec.c:1208:13
    #2 0xb8fb1e in ivas_sba_dirac_stereo_dec /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:881:5
    #3 0x744242 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:449:13
    #4 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #5 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #6 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #7 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0xb8b47a in ivas_sba_dirac_stereo_smooth_parameters /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:771:96
    #1 0xc7dc17 in stereo_dft_dec /local/knj/ivas-codec2/lib_dec/ivas_stereo_dft_dec.c:1208:13
    #2 0xb8fb1e in ivas_sba_dirac_stereo_dec /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:881:5
    #3 0x744242 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:449:13
    #4 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #5 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #6 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #7 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0xb8b47a in ivas_sba_dirac_stereo_smooth_parameters /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:771:96
    #1 0xc7dc17 in stereo_dft_dec /local/knj/ivas-codec2/lib_dec/ivas_stereo_dft_dec.c:1208:13
    #2 0xb8fb1e in ivas_sba_dirac_stereo_dec /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:881:5
    #3 0x744242 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:449:13
    #4 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #5 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #6 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #7 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x1e1ae28 in mvr2r /local/knj/ivas-codec2/lib_com/tools.c:332:18
    #1 0xb8b7a4 in ivas_sba_dirac_stereo_smooth_parameters /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:780:17
    #2 0xc7dc17 in stereo_dft_dec /local/knj/ivas-codec2/lib_dec/ivas_stereo_dft_dec.c:1208:13
    #3 0xb8fb1e in ivas_sba_dirac_stereo_dec /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:881:5
    #4 0x744242 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:449:13
    #5 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #6 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #7 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #8 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x1e1ae28 in mvr2r /local/knj/ivas-codec2/lib_com/tools.c:332:18
    #1 0xb8b804 in ivas_sba_dirac_stereo_smooth_parameters /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:781:17
    #2 0xc7dc17 in stereo_dft_dec /local/knj/ivas-codec2/lib_dec/ivas_stereo_dft_dec.c:1208:13
    #3 0xb8fb1e in ivas_sba_dirac_stereo_dec /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:881:5
    #4 0x744242 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:449:13
    #5 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #6 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #7 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #8 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0xb8be7f in ivas_sba_dirac_stereo_smooth_parameters /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:789:64
    #1 0xc7dc17 in stereo_dft_dec /local/knj/ivas-codec2/lib_dec/ivas_stereo_dft_dec.c:1208:13
    #2 0xb8fb1e in ivas_sba_dirac_stereo_dec /local/knj/ivas-codec2/lib_dec/ivas_sba_dirac_stereo_dec.c:881:5
    #3 0x744242 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:449:13
    #4 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #5 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #6 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #7 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was created by a heap allocation
    #0 0x42b36d in malloc /local1/bnd/llvm-8.0.1.src/projects/compiler-rt/lib/msan/msan_interceptors.cc:912:3
    #1 0x1067939 in ivas_limiter_open /local/knj/ivas-codec2/lib_rend/ivas_limiter.c:117:23
    #2 0x8ba85d in ivas_init_decoder /local/knj/ivas-codec2/lib_dec/ivas_init_dec.c:1486:32
    #3 0x89a1f5 in ivas_dec_setup /local/knj/ivas-codec2/lib_dec/ivas_init_dec.c:315:24
    #4 0x73ada4 in ivas_dec /local/knj/ivas-codec2/lib_dec/ivas_dec.c:90:24
    #5 0x4db37b in IVAS_DEC_GetSamples /local/knj/ivas-codec2/lib_dec/lib_dec.c:863:24
    #6 0x4c3227 in decodeG192 /local/knj/ivas-codec2/apps/decoder.c:1752:24
    #7 0x49f21a in main /local/knj/ivas-codec2/apps/decoder.c:631:17
    #8 0x7fdd241f4d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /local/knj/ivas-codec2/lib_com/hp50.c:127:14 in hp20
Exiting

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

Ways to reproduce

Using the scripts:

python3 scripts/IvasBuildAndRunChecks.py --checks CLANG1 -m SBA_ball_fb_rs PlanarSBA_ball_fb_rs -p /path/to/my/local/ci_linux_ltv_local.json

or directly:

make clean
make -j CLANG=1
/local/ivas-codec/CLANG1/IVAS_cod -sba 3 -max_band fb /local/ivas-codec/scripts/switchPaths/sw_13k2_512k.bin 48 /local/ivas-codec/CLANG1/pcm/stv3OA48c_48_SBA.pcm /local/ivas-codec/CLANG1/enc/stv3OA48c_SBA_ball_fb_rs.192
./IVAS_dec stereo 48 bit dec.wav
Edited by Dominik Weckbecker