mirror of
https://github.com/taglib/taglib.git
synced 2026-08-14 06:17:00 -04:00
Fix ID3v2 frame data length check for per-frame unsynchronised ID3v2.4 frames (#1385)
Frame::fieldData() (taglib/mpeg/id3v2/id3v2frame.cpp) discarded any ID3v2.4 frame whose declared size (from the header) no longer matched its actual buffer size after per-frame unsynchronisation was decoded by FrameFactory::prepareFrameHeader(), silently emptying frames like TIT2/TPE1/TALB. Clamp the declared length to what's actually available instead of discarding the frame, only bailing out if the frame's data offset itself doesn't fit. Adds testUnsynchDecodeID3v24Frame() to tests/test_id3v2.cpp, covering a frame with its own per-frame Unsynchronisation flag (as opposed to the tag-wide flag already covered by testUnsynchDecode()), using new fixture tests/data/unsynch24.id3.
This commit is contained in:
Binary file not shown.
Reference in New Issue
Block a user