Skip to content

ASAN: Memory leak in LTV sanitizer test for BINAURAL output modes

Basic info

Bug description

LTV sanitizer test job found a memory leak in BINAURAL* output testcases.

There are two types of errors.

First one - BINAURAL and BINAURAL_ROOM_IR output:

=================================================================
	==20259==ERROR: LeakSanitizer: detected memory leaks

	Direct leak of 1028 byte(s) in 1 object(s) allocated from:
	    #0 0x49c29d in __interceptor_malloc (/builds/rep/sa4/audio/ivas-basop/IVAS_dec+0x49c29d)
	    #1 0x151fc56 in load_reverb_from_binary /builds/rep/sa4/audio/ivas-basop/lib_util/hrtf_file_reader.c:630:60
	    #2 0x151f5d9 in load_reverb_binary /builds/rep/sa4/audio/ivas-basop/lib_util/hrtf_file_reader.c:673:12
	    #3 0x4d3260 in main /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:651:24
	    #4 0x7f1ce10afd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

	Direct leak of 1028 byte(s) in 1 object(s) allocated from:
	    #0 0x49c29d in __interceptor_malloc (/builds/rep/sa4/audio/ivas-basop/IVAS_dec+0x49c29d)
	    #1 0x151fcae in load_reverb_from_binary /builds/rep/sa4/audio/ivas-basop/lib_util/hrtf_file_reader.c:631:65
	    #2 0x151f5d9 in load_reverb_binary /builds/rep/sa4/audio/ivas-basop/lib_util/hrtf_file_reader.c:673:12
	    #3 0x4d3260 in main /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:651:24
	    #4 0x7f1ce10afd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

	Direct leak of 1028 byte(s) in 1 object(s) allocated from:
	    #0 0x49c29d in __interceptor_malloc (/builds/rep/sa4/audio/ivas-basop/IVAS_dec+0x49c29d)
	    #1 0x151fbfe in load_reverb_from_binary /builds/rep/sa4/audio/ivas-basop/lib_util/hrtf_file_reader.c:629:60
	    #2 0x151f5d9 in load_reverb_binary /builds/rep/sa4/audio/ivas-basop/lib_util/hrtf_file_reader.c:673:12
	    #3 0x4d3260 in main /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:651:24
	    #4 0x7f1ce10afd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

	SUMMARY: AddressSanitizer: 3084 byte(s) leaked in 3 allocation(s).

Second one - BINAURAL_ROOM_REVERB output

Direct leak of 1028 byte(s) in 1 object(s) allocated from:
	    #0 0x49c29d in __interceptor_malloc (/builds/rep/sa4/audio/ivas-basop/IVAS_dec+0x49c29d)
	    #1 0xbcb1f1 in ivas_HRTF_statistics_init /builds/rep/sa4/audio/ivas-basop/lib_rend/ivas_hrtf_fx.c:293:63
	    #2 0x72a999 in ivas_init_decoder_fx /builds/rep/sa4/audio/ivas-basop/lib_dec/ivas_init_dec_fx.c:1674:9
	    #3 0x727803 in ivas_dec_setup /builds/rep/sa4/audio/ivas-basop/lib_dec/ivas_init_dec_fx.c:1016:9
	    #4 0x4f6b3e in IVAS_DEC_Setup /builds/rep/sa4/audio/ivas-basop/lib_dec/lib_dec_fx.c:1644:13
	    #5 0x4f409a in IVAS_DEC_GetSamples /builds/rep/sa4/audio/ivas-basop/lib_dec/lib_dec_fx.c:1163:13
	    #6 0x4e3d08 in decodeG192 /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:2134:32
	    #7 0x4d3987 in main /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:688:17
	    #8 0x7f8a4249cd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

	Direct leak of 1028 byte(s) in 1 object(s) allocated from:
	    #0 0x49c29d in __interceptor_malloc (/builds/rep/sa4/audio/ivas-basop/IVAS_dec+0x49c29d)
	    #1 0xbcb27d in ivas_HRTF_statistics_init /builds/rep/sa4/audio/ivas-basop/lib_rend/ivas_hrtf_fx.c:298:68
	    #2 0x72a999 in ivas_init_decoder_fx /builds/rep/sa4/audio/ivas-basop/lib_dec/ivas_init_dec_fx.c:1674:9
	    #3 0x727803 in ivas_dec_setup /builds/rep/sa4/audio/ivas-basop/lib_dec/ivas_init_dec_fx.c:1016:9
	    #4 0x4f6b3e in IVAS_DEC_Setup /builds/rep/sa4/audio/ivas-basop/lib_dec/lib_dec_fx.c:1644:13
	    #5 0x4f409a in IVAS_DEC_GetSamples /builds/rep/sa4/audio/ivas-basop/lib_dec/lib_dec_fx.c:1163:13
	    #6 0x4e3d08 in decodeG192 /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:2134:32
	    #7 0x4d3987 in main /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:688:17
	    #8 0x7f8a4249cd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

	Direct leak of 1028 byte(s) in 1 object(s) allocated from:
	    #0 0x49c29d in __interceptor_malloc (/builds/rep/sa4/audio/ivas-basop/IVAS_dec+0x49c29d)
	    #1 0xbcb165 in ivas_HRTF_statistics_init /builds/rep/sa4/audio/ivas-basop/lib_rend/ivas_hrtf_fx.c:288:63
	    #2 0x72a999 in ivas_init_decoder_fx /builds/rep/sa4/audio/ivas-basop/lib_dec/ivas_init_dec_fx.c:1674:9
	    #3 0x727803 in ivas_dec_setup /builds/rep/sa4/audio/ivas-basop/lib_dec/ivas_init_dec_fx.c:1016:9
	    #4 0x4f6b3e in IVAS_DEC_Setup /builds/rep/sa4/audio/ivas-basop/lib_dec/lib_dec_fx.c:1644:13
	    #5 0x4f409a in IVAS_DEC_GetSamples /builds/rep/sa4/audio/ivas-basop/lib_dec/lib_dec_fx.c:1163:13
	    #6 0x4e3d08 in decodeG192 /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:2134:32
	    #7 0x4d3987 in main /builds/rep/sa4/audio/ivas-basop/apps/decoder.c:688:17
	    #8 0x7f8a4249cd8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

	SUMMARY: AddressSanitizer: 3084 byte(s) leaked in 3 allocation(s).

Ways to reproduce

First one:

IVAS_cod -ism 2 ltvISM1.csv ltvISM2.csv 128000 48 ltv48_2ISM.wav bit1
IVAS_dec -fr 20 -t scripts/testv/headrot_case01_3000_q.csv -exof scripts/testv/headrot_case00_3000_q_combinedRotationTest.csv -hrtf scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_32kHz.bin BINAURAL 32 bin1 out1.wav

Second one:

IVAS_cod -ism +4 ltvISM1.csv ltvISM2.csv ltvISM3.csv ltvISM4.csv 128000 48 ltv48_4ISM.wav bin2
IVAS_dec -fr 20 BINAURAL_ROOM_REVERB 48 bin2 out2.wav