Skip to content

Use-of-uninitialized memory in external HRTF deallocation in decoder together with BR switching

There is an msan error detected for using external HRTF file:

=737000==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x1e48660 in dealloc_HRTF_binary /local/knj/ivas-codec2/lib_util/hrtf_file_reader.c:626:10
    #1 0x49f3f7 in main /local/knj/ivas-codec2/apps/decoder.c:619:9
    #2 0x7fd05e843d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)
    #3 0x41f5a9 in _start (/local/knj/ivas-codec2/IVAS_dec+0x41f5a9)

  Uninitialized value was stored to memory at
    #0 0x1e485b3 in dealloc_HRTF_binary /local/knj/ivas-codec2/lib_util/hrtf_file_reader.c:621
    #1 0x49f3f7 in main /local/knj/ivas-codec2/apps/decoder.c:619:9
    #2 0x7fd05e843d09 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x23d09)

  Uninitialized value was created by an allocation of 'hHrtfTD402' in the stack frame of function 'main'
    #0 0x497c70 in main /local/knj/ivas-codec2/apps/decoder.c:151

SUMMARY: MemorySanitizer: use-of-uninitialized-value /local/knj/ivas-codec2/lib_util/hrtf_file_reader.c:626:10 in dealloc_HRTF_binary

Reproduce e.g. with

make clean
make -j CLANG=1
./IVAS_cod -ism 3 scripts/testv/stvISM1.csv scripts/testv/stvISM2.csv scripts/testv/stvISM3.csv -max_band fb scripts/switchPaths/sw_32k_384k.bin 48 stv3ISM48s.wav bit
./IVAS_dec -hrtf ./scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL 48 bit out.wav