Version: 1.4 (using KDE KDE 3.5.8) Installed from: Ubuntu Packages Compiler: g++ (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2) OS: Linux The "from ByteVector" constructors of AttachedPictureFrame and GeneralEncapsulatedObjectFrame first call setData() (which calls parse(), which dereferences the FramePrivate d pointer), and then allocate d, which causes a segfault. Those two lines should be swapped. diff -ru taglib.orig/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp --- taglib.orig/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp 2007-10-20 08:40:22.000000000 +0200 +++ taglib/taglib/mpeg/id3v2/frames/attachedpictureframe.cpp 2007-10-20 09:16:27.000000000 +0200 @@ -54,8 +54,8 @@ AttachedPictureFrame::AttachedPictureFrame(const ByteVector &data) : Frame(data) { - setData(data); d = new AttachedPictureFramePrivate; + setData(data); } AttachedPictureFrame::~AttachedPictureFrame() diff -ru taglib.orig/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp --- taglib.orig/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp 2007-10-20 08:40:22.000000000 +0200 +++ taglib/taglib/mpeg/id3v2/frames/generalencapsulatedobjectframe.cpp 2007-10-20 09:16:41.000000000 +0200 @@ -55,8 +55,8 @@ GeneralEncapsulatedObjectFrame::GeneralEncapsulatedObjectFrame(const ByteVector &data) : Frame(data) { - setData(data); d = new GeneralEncapsulatedObjectFramePrivate; + setData(data); } GeneralEncapsulatedObjectFrame::~GeneralEncapsulatedObjectFrame()
Fixed in r735035 along with other APIC-related bugs.