MediaInfoLib icon indicating copy to clipboard operation
MediaInfoLib copied to clipboard

Memory leak detected by sanitizer

Open cjee21 opened this issue 3 months ago • 2 comments

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).

cjee21 avatar Sep 22 '25 07:09 cjee21

Build script:

build_MediaInfo_AddressSanitizer.zip

cjee21 avatar Sep 22 '25 07:09 cjee21

Unable to reproduce on Windows with /fsanitize=address.

cjee21 avatar Sep 22 '25 07:09 cjee21