Skip to content

Msan error in MASA encoder @ 512kbps WB

Basic info

Bug description

Clang msan sanitizer error found in MASA encoder:

==138704==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x13f879c in write_indices_to_stream /local/knj/ivas-codec/lib_com/bitstream.c:701:22
    #1 0x13d6cf2 in write_indices_element /local/knj/ivas-codec/lib_com/bitstream.c:825:17
    #2 0x13d43ed in write_indices_ivas /local/knj/ivas-codec/lib_com/bitstream.c:964:9
    #3 0x4d0745 in IVAS_ENC_EncodeFrameToSerial /local/knj/ivas-codec/lib_enc/lib_enc.c:1160:5
    #4 0x4a2ee6 in main /local/knj/ivas-codec/apps/encoder.c:743:24
    #5 0x7f71c5f57d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)
    #6 0x41f579 in _start (/local/knj/ivas-codec/CLANG1/IVAS_cod+0x41f579)

  Uninitialized value was stored to memory at
    #0 0x13f82be in write_indices_to_stream /local/knj/ivas-codec/lib_com/bitstream.c:687:15
    #1 0x13d6cf2 in write_indices_element /local/knj/ivas-codec/lib_com/bitstream.c:825:17
    #2 0x13d43ed in write_indices_ivas /local/knj/ivas-codec/lib_com/bitstream.c:964:9
    #3 0x4d0745 in IVAS_ENC_EncodeFrameToSerial /local/knj/ivas-codec/lib_enc/lib_enc.c:1160:5
    #4 0x4a2ee6 in main /local/knj/ivas-codec/apps/encoder.c:743:24
    #5 0x7f71c5f57d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x13cb52b in push_next_indice /local/knj/ivas-codec/lib_com/bitstream.c:357:44
    #1 0x7cf616 in ivas_qmetadata_enc_encode_hr_384_512 /local/knj/ivas-codec/lib_enc/ivas_qmetadata_enc.c:876:17
    #2 0x67a991 in ivas_masa_encode /local/knj/ivas-codec/lib_enc/ivas_masa_enc.c:333:13
    #3 0x60cd57 in ivas_enc /local/knj/ivas-codec/lib_enc/ivas_enc.c:235:32
    #4 0x4d0560 in IVAS_ENC_EncodeFrameToSerial /local/knj/ivas-codec/lib_enc/lib_enc.c:1153:24
    #5 0x4a2ee6 in main /local/knj/ivas-codec/apps/encoder.c:743:24
    #6 0x7f71c5f57d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was stored to memory at
    #0 0x13ca7ca in push_next_indice /local/knj/ivas-codec/lib_com/bitstream.c:326
    #1 0x7cf616 in ivas_qmetadata_enc_encode_hr_384_512 /local/knj/ivas-codec/lib_enc/ivas_qmetadata_enc.c:876:17
    #2 0x67a991 in ivas_masa_encode /local/knj/ivas-codec/lib_enc/ivas_masa_enc.c:333:13
    #3 0x60cd57 in ivas_enc /local/knj/ivas-codec/lib_enc/ivas_enc.c:235:32
    #4 0x4d0560 in IVAS_ENC_EncodeFrameToSerial /local/knj/ivas-codec/lib_enc/lib_enc.c:1153:24
    #5 0x4a2ee6 in main /local/knj/ivas-codec/apps/encoder.c:743:24
    #6 0x7f71c5f57d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was created by a heap allocation
    #0 0x42b33d in malloc /local1/bnd/llvm-8.0.1.src/projects/compiler-rt/lib/msan/msan_interceptors.cc:912:3
    #1 0x181da21 in ivas_qmetadata_allocate_memory /local/knj/ivas-codec/lib_com/ivas_qmetadata_com.c:143:95
    #2 0x6a1b4c in ivas_masa_enc_config /local/knj/ivas-codec/lib_enc/ivas_masa_enc.c:616:20
    #3 0x60c5b7 in ivas_enc /local/knj/ivas-codec/lib_enc/ivas_enc.c:231:32
    #4 0x4d0560 in IVAS_ENC_EncodeFrameToSerial /local/knj/ivas-codec/lib_enc/lib_enc.c:1153:24
    #5 0x4a2ee6 in main /local/knj/ivas-codec/apps/encoder.c:743:24
    #6 0x7f71c5f57d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

SUMMARY: MemorySanitizer: use-of-uninitialized-value /local/knj/ivas-codec/lib_com/bitstream.c:701:22 in write_indices_to_stream

Not found in test pipeline (yet?).

Ways to reproduce

Using the scripts:

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

or directly:

make clean
make -j CLANG=1
# resample testvector stv1MASA1TC48c.wav to 16kHz here...
./IVAS_cod -masa 2 scripts/testv/stv1MASA1TC48c.met -max_band_ wb 512000 16 stv1MASA1TC48c_16_MASA2TC1DIR.pcm bit