mpruett / audiofile

Audio File Library
https://audiofile.68k.org/
GNU Lesser General Public License v2.1
156 stars 43 forks source link

Memory leak in AUpvnew #47

Open insuyun opened 7 years ago

insuyun commented 7 years ago

https://github.com/jakkdu/poc/blob/master/000010-audiofile-leak-AUpvnew

./sfconvert $FILE out.mp3 format aiff Audio File Library: invalid chunk length -9008290176433921 for chunk type [error 62] Audio File Library: invalid chunk length -1095221091282 for chunk type [error 62] Audio File Library: invalid chunk length -9008290176433921 for chunk type [error 62] Audio File Library: invalid chunk length -1095221091282 for chunk type [error 62]

================================================================= ==27449==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 24 byte(s) in 1 object(s) allocated from:

0 0x7f1fae647602 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x98602)

#1 0x4574ce in AUpvnew /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/aupv.c:45
#2 0x43b94f in CAFFile::initIMACompressionParams() /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:694
#3 0x43c7be in CAFFile::parseDescription(Tag const&, long) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:339
#4 0x43cdb0 in CAFFile::readInit(_AFfilesetup*) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:129
#5 0x408f28 in _afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:356
#6 0x409cb7 in afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:217
#7 0x403240 in printfileinfo /home/insu/projects/qsym-eval/apps/audiofile/audiofile/sfcommands/printinfo.c:45
#8 0x402f84 in main /home/insu/projects/qsym-eval/apps/audiofile/audiofile/sfcommands/sfconvert.c:286
#9 0x7f1fadb7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

Direct leak of 24 byte(s) in 1 object(s) allocated from:

0 0x7f1fae647602 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x98602)

#1 0x4574ce in AUpvnew /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/aupv.c:45
#2 0x43b94f in CAFFile::initIMACompressionParams() /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:694
#3 0x43c7be in CAFFile::parseDescription(Tag const&, long) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:339
#4 0x43cdb0 in CAFFile::readInit(_AFfilesetup*) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:129
#5 0x408f28 in _afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:356
#6 0x409cb7 in afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:217
#7 0x402d96 in main /home/insu/projects/qsym-eval/apps/audiofile/audiofile/sfcommands/sfconvert.c:222
#8 0x7f1fadb7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:

0 0x7f1fae64779a in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x9879a)

#1 0x4574ea in AUpvnew /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/aupv.c:50
#2 0x43b94f in CAFFile::initIMACompressionParams() /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:694
#3 0x43c7be in CAFFile::parseDescription(Tag const&, long) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:339
#4 0x43cdb0 in CAFFile::readInit(_AFfilesetup*) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:129
#5 0x408f28 in _afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:356
#6 0x409cb7 in afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:217
#7 0x402d96 in main /home/insu/projects/qsym-eval/apps/audiofile/audiofile/sfcommands/sfconvert.c:222
#8 0x7f1fadb7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:

0 0x7f1fae64779a in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x9879a)

#1 0x4574ea in AUpvnew /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/aupv.c:50
#2 0x43b94f in CAFFile::initIMACompressionParams() /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:694
#3 0x43c7be in CAFFile::parseDescription(Tag const&, long) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:339
#4 0x43cdb0 in CAFFile::readInit(_AFfilesetup*) /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/CAF.cpp:129
#5 0x408f28 in _afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:356
#6 0x409cb7 in afOpenFile /home/insu/projects/qsym-eval/apps/audiofile/audiofile/libaudiofile/openclose.cpp:217
#7 0x403240 in printfileinfo /home/insu/projects/qsym-eval/apps/audiofile/audiofile/sfcommands/printinfo.c:45
#8 0x402f84 in main /home/insu/projects/qsym-eval/apps/audiofile/audiofile/sfcommands/sfconvert.c:286
#9 0x7f1fadb7a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

SUMMARY: AddressSanitizer: 96 byte(s) leaked in 4 allocation(s).