Skip to content

Msan error in decoding MASA to EXT

Basic info

Bug description

Clang msan sanitizer test in pipeline found an error in MASA decoding to EXT format:

Uninitialized bytes in __interceptor_fwrite at offset 40 inside [0x718000000010, 48)
==490639==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x1de2624 in MasaFileWriter_writeFrame /local/knj/ivas-codec/lib_util/masa_file_writer.c:336:18
    #1 0x4b2c6b in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1575:32
    #2 0x49dd28 in main /local/knj/ivas-codec/apps/decoder.c:533:17
    #3 0x7f789f654d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)
    #4 0x41f5a9 in _start (/local/knj/ivas-codec/CLANG1/IVAS_dec+0x41f5a9)

  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 0x8ad55c in ivas_masa_dec_open /local/knj/ivas-codec/lib_dec/ivas_masa_dec.c:359:71
    #2 0x809b06 in ivas_init_decoder /local/knj/ivas-codec/lib_dec/ivas_init_dec.c:857:28
    #3 0x7fd4bf in ivas_dec_setup /local/knj/ivas-codec/lib_dec/ivas_init_dec.c:294:24
    #4 0x6e9865 in ivas_dec /local/knj/ivas-codec/lib_dec/ivas_dec.c:83:24
    #5 0x4c8feb in IVAS_DEC_GetSamples /local/knj/ivas-codec/lib_dec/lib_dec.c:717:24
    #6 0x4b0dfd in decodeG192 /local/knj/ivas-codec/apps/decoder.c:1466:24
    #7 0x49dd28 in main /local/knj/ivas-codec/apps/decoder.c:533:17
    #8 0x7f789f654d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /local/knj/ivas-codec/lib_util/masa_file_writer.c:336:18 in MasaFileWriter_writeFrame

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

Ways to reproduce

Using the scripts:

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

or directly:

make clean
make -j CLANG=1
# ... resample stv1MASA1TC48c.wav to 16k -> stv1MASA1TC16c.wav
./IVAS_cod -masa 1 scripts/testv/stv1MASA1TC48c.met -max_band wb 16400 16 scripts/testv/stv1MASA1TC16c.wav /bit
./IVAS_dec EXT 16 bit out.wav