MediaInfoLib
MediaInfoLib copied to clipboard
Memory leak detected by sanitizer
When parsing mediainfo itself on Ubuntu with a build that has Address Sanitizer enabled, this happens:
$ ./mediainfo ./mediainfo
General
Complete name : ./mediainfo
Format : ELF
Format profile : Shared object / AMD x86-64
File size : 102 MiB
FileExtension_Invalid : so
=================================================================
==31043==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 480 byte(s) in 32 object(s) allocated from:
#0 0x7be5530fe6c8 in operator new[](unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:98
#1 0x5b2199c780db in MediaInfoLib::MediaInfo_Config_MediaInfo::Event_Send(MediaInfoLib::File__Analyze*, unsigned char const*, unsigned long, ZenLib::Ztring const&) ../../../Source/MediaInfo/MediaInfo_Config_MediaInfo.cpp:3158
#2 0x5b2198d7bc7a in MediaInfoLib::File_Dat::Data_Parse() ../../../Source/MediaInfo/Audio/File_Dat.cpp:547
#3 0x5b2199b1e8c3 in MediaInfoLib::File__Analyze::Data_Manage() ../../../Source/MediaInfo/File__Analyze.cpp:2838
#4 0x5b2199b14812 in MediaInfoLib::File__Analyze::Buffer_Parse() ../../../Source/MediaInfo/File__Analyze.cpp:1948
#5 0x5b2199b0fed2 in MediaInfoLib::File__Analyze::Open_Buffer_Continue_Loop() ../../../Source/MediaInfo/File__Analyze.cpp:1514
#6 0x5b2199b08a07 in MediaInfoLib::File__Analyze::Open_Buffer_Continue(unsigned char const*, unsigned long) ../../../Source/MediaInfo/File__Analyze.cpp:1101
#7 0x5b2198afcb29 in MediaInfoLib::MediaInfo_Internal::Open_Buffer_Continue(unsigned char const*, unsigned long) ../../../Source/MediaInfo/MediaInfo_Internal.cpp:1723
#8 0x5b21997bf678 in MediaInfoLib::Reader_File::Format_Test_PerParser_Continue(MediaInfoLib::MediaInfo_Internal*) ../../../Source/MediaInfo/Reader/Reader_File.cpp:758
#9 0x5b21997bc170 in MediaInfoLib::Reader_File::Format_Test_PerParser(MediaInfoLib::MediaInfo_Internal*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) ../../../Source/MediaInfo/Reader/Reader_File.cpp:305
#10 0x5b2198aa3036 in MediaInfoLib::MediaInfo_Internal::ListFormats(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) ../../../Source/MediaInfo/MediaInfo_File.cpp:1120
#11 0x5b21997bad2e in MediaInfoLib::Reader_File::Format_Test(MediaInfoLib::MediaInfo_Internal*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >) ../../../Source/MediaInfo/Reader/Reader_File.cpp:222
#12 0x5b2198af66c9 in MediaInfoLib::MediaInfo_Internal::Entry() ../../../Source/MediaInfo/MediaInfo_Internal.cpp:1418
#13 0x5b2198ae7ee2 in MediaInfoLib::MediaInfo_Internal::Open(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) ../../../Source/MediaInfo/MediaInfo_Internal.cpp:1174
#14 0x5b2198b28e85 in MediaInfoLib::MediaInfoList_Internal::Entry() ../../../Source/MediaInfo/MediaInfoList_Internal.cpp:212
#15 0x5b2198b27dad in MediaInfoLib::MediaInfoList_Internal::Open(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, MediaInfoLib::fileoptions_t) ../../../Source/MediaInfo/MediaInfoList_Internal.cpp:148
#16 0x5b2198b25fb0 in MediaInfoLib::MediaInfoList::Open(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, MediaInfoLib::fileoptions_t) ../../../Source/MediaInfo/MediaInfoList.cpp:118
#17 0x5b2198a42882 in Core::Menu_File_Open_Files_Continue(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) ../../../Source/Common/Core.cpp:172
#18 0x5b2198a3aa50 in main ../../../Source/CLI/CLI_Main.cpp:157
#19 0x7be55282a1c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
#20 0x7be55282a28a in __libc_start_main_impl ../csu/libc-start.c:360
#21 0x5b2198a39a34 in _start (/home/ubuntu/build/mediainfo+0x3d0a34) (BuildId: b5a7b0922ca68b509f6cc03f733c5229932b729d)
SUMMARY: AddressSanitizer: 480 byte(s) leaked in 32 allocation(s).
Unable to reproduce on Windows with /fsanitize=address.