Skip to content

Msan error in OSBA to STEREO decoding for bitrate >= 256

Basic info

Bug description

Clang msan sanitizer test reports an error:

==16140==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0xfb716f in limiter_process /ivas-codec/lib_rend/ivas_limiter.c:265:18
    #1 0xfb5f98 in ivas_limiter_dec /ivas-codec/lib_rend/ivas_limiter.c:207:5
    #2 0x7c8bfe in ivas_jbm_dec_render /ivas-codec/lib_dec/ivas_jbm_dec.c:1511:13
    #3 0x4ef8b1 in IVAS_DEC_GetRenderedSamples /ivas-codec/lib_dec/lib_dec.c:1555:13
    #4 0x4e99b4 in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:1159:28
    #5 0x4c925f in decodeG192 /ivas-codec/apps/decoder.c:2457:28
    #6 0x4a8757 in main /ivas-codec/apps/decoder.c:833:17
    #7 0x7ff855778d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #8 0x7ff855778e3f in __libc_start_main csu/../csu/libc-start.c:392:3
    #9 0x421544 in _start (/ivas-codec/IVAS_dec+0x421544)

  Uninitialized value was stored to memory at
    #0 0xfb70d5 in limiter_process /ivas-codec/lib_rend/ivas_limiter.c:264:17
    #1 0xfb5f98 in ivas_limiter_dec /ivas-codec/lib_rend/ivas_limiter.c:207:5
    #2 0x7c8bfe in ivas_jbm_dec_render /ivas-codec/lib_dec/ivas_jbm_dec.c:1511:13
    #3 0x4ef8b1 in IVAS_DEC_GetRenderedSamples /ivas-codec/lib_dec/lib_dec.c:1555:13
    #4 0x4e99b4 in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:1159:28
    #5 0x4c925f in decodeG192 /ivas-codec/apps/decoder.c:2457:28
    #6 0x4a8757 in main /ivas-codec/apps/decoder.c:833:17
    #7 0x7ff855778d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x1f14e3b in v_add /ivas-codec/lib_com/tools.c:872:14
    #1 0x7bec88 in ivas_jbm_dec_render /ivas-codec/lib_dec/ivas_jbm_dec.c:1206:21
    #2 0x4ef8b1 in IVAS_DEC_GetRenderedSamples /ivas-codec/lib_dec/lib_dec.c:1555:13
    #3 0x4e99b4 in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:1159:28
    #4 0x4c925f in decodeG192 /ivas-codec/apps/decoder.c:2457:28
    #5 0x4a8757 in main /ivas-codec/apps/decoder.c:833:17
    #6 0x7ff855778d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x1f0ac95 in mvr2r /ivas-codec/lib_com/tools.c:335:18
    #1 0x7be32b in ivas_jbm_dec_render /ivas-codec/lib_dec/ivas_jbm_dec.c:1193:21
    #2 0x4ef8b1 in IVAS_DEC_GetRenderedSamples /ivas-codec/lib_dec/lib_dec.c:1555:13
    #3 0x4e99b4 in IVAS_DEC_GetSamples /ivas-codec/lib_dec/lib_dec.c:1159:28
    #4 0x4c925f in decodeG192 /ivas-codec/apps/decoder.c:2457:28
    #5 0x4a8757 in main /ivas-codec/apps/decoder.c:833:17
    #6 0x7ff855778d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was created by an allocation of 'output' in the stack frame of function 'ivas_jbm_dec_render'
    #0 0x7b5f90 in ivas_jbm_dec_render /ivas-codec/lib_dec/ivas_jbm_dec.c:939

SUMMARY: MemorySanitizer: use-of-uninitialized-value /ivas-codec/lib_rend/ivas_limiter.c:265:18 in limiter_process

Ways to reproduce

Using the scripts:

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

or directly:

make clean
make -j CLANG=1
IVAS_cod -ism_sba 1 1 NULL -max_band fb 256000 48 ivas-pc-testfiles/ltv48_OSBA_1ISM_FOA.wav bit
./IVAS_dec stereo 48 bit out.wav