Remaining leaks found by Valgrind

Xavier Duret xaviour.maillists at gmail.com
Tue Jan 23 13:02:50 CET 2007


After applying the patches previously sent to the list, there are
still 3 leaks remaining. Fixing them without breaking binary
compatibility is above my C++ skills. The leaks are not big but still
a leak is a leak. Here is what Valgrind reports:

 4 bytes in 1 blocks are still reachable in loss record 1 of 3
    at 0xFFBC584: operator new(unsigned) (vg_replace_malloc.c:163)
    by 0xFD7AB2C: __static_initialization_and_destruction_0(int, int)
(id3v1tag.cpp:50)
    by 0xFD7ABEC:
_GLOBAL__I__ZN6TagLib5ID3v13Tag10TagPrivate13stringHandlerE
(id3v1tag.cpp:240)
    by 0xFDD0B80: (within /usr/lib/libtag.so.1.4.0)
    by 0xFD73908: (within /usr/lib/libtag.so.1.4.0)
    by 0x400DFF4: call_init (in /lib/ld-2.5.so)
    by 0x400E150: _dl_init (in /lib/ld-2.5.so)
    by 0x40150F4: _start (in /lib/ld-2.5.so)

It is due to this construct. There is no corresponding "delete".
const ID3v1::StringHandler *ID3v1::Tag::TagPrivate::stringHandler =
new StringHandler;

The following 2 leaks are due to the fact that the ID3v2 frame factory
is never deleted:

 8 bytes in 1 blocks are still reachable in loss record 2 of 3
    at 0xFFBC584: operator new(unsigned) (vg_replace_malloc.c:163)
    by 0xFD80D5C: TagLib::ID3v2::FrameFactory::FrameFactory()
(id3v2framefactory.cpp:185)
    by 0xFD80E6C: TagLib::ID3v2::FrameFactory::instance()
(id3v2framefactory.cpp:59)
    by 0xFD761E4: TagLib::MPEG::File::File(char const*, bool,
TagLib::AudioProperties::ReadStyle) (mpegfile.cpp:227)
    by 0xFF96810: taglib_file_new_type (tag_c.cpp:63)
    by 0x10004498: scan_get_taglibinfo (scan-taglib.c:53)
    by 0x10004E10: main (main.c:84)

 8 bytes in 1 blocks are still reachable in loss record 3 of 3
    at 0xFFBC584: operator new(unsigned) (vg_replace_malloc.c:163)
    by 0xFD80E5C: TagLib::ID3v2::FrameFactory::instance()
(id3v2framefactory.cpp:59)
    by 0xFD761E4: TagLib::MPEG::File::File(char const*, bool,
TagLib::AudioProperties::ReadStyle) (mpegfile.cpp:227)
    by 0xFF96810: taglib_file_new_type (tag_c.cpp:63)
    by 0x10004498: scan_get_taglibinfo (scan-taglib.c:53)
    by 0x10004E10: main (main.c:84)


More information about the taglib-devel mailing list