Your message dated Wed, 29 Jul 2026 12:44:13 -0400
with message-id <[email protected]>
and subject line Re: libtag1c2a: id3v2 zero-sized frame parsing
has caused the Debian Bug report #413555,
regarding libtag1c2a: id3v2 zero-sized frame parsing
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
413555: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=413555
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libtag1c2a
Version: 1.4-4
Severity: important
Tags: patch


I have many mp3 files which have id3v2 tags with zero-sized frames in
them; that is, the 4 byte frame identfier, 4 nulls, and 2 flag bytes.
This isn't an issue with other tag processing apps/libs, but taglib
fails to parse the tag after such a frame. So only the data to the first
such frame is processed, which leads to an incomplete display of file
information in the various players using taglib.
The attached patch fixes the issue.

-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-ck1
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)

Versions of packages libtag1c2a depends on:
hi  libc6                         2.3.6-7    GNU C Library: Shared libraries
hi  libgcc1                       1:4.1.1-21 GCC support library
hi  libstdc++6                    4.1.1-21   The GNU Standard C++ Library v3
hi  zlib1g                        1:1.2.3-11 compression library - runtime

libtag1c2a recommends no packages.

-- no debconf information
diff -ruN taglib-1.4/taglib/mpeg/id3v2/frames/textidentificationframe.cpp taglib-1.4-mine/taglib/mpeg/id3v2/frames/textidentificationframe.cpp
--- taglib-1.4/taglib/mpeg/id3v2/frames/textidentificationframe.cpp	2005-05-17 22:17:26.000000000 +0200
+++ taglib-1.4-mine/taglib/mpeg/id3v2/frames/textidentificationframe.cpp	2007-03-05 04:27:39.265744795 +0100
@@ -94,6 +94,10 @@
 
 void TextIdentificationFrame::parseFields(const ByteVector &data)
 {
+  if(data.size() == 0) {
+    return;
+  }
+
   // read the string data type (the first byte of the field data)
 
   d->textEncoding = String::Type(data[0]);
diff -ruN taglib-1.4/taglib/mpeg/id3v2/id3v2framefactory.cpp taglib-1.4-mine/taglib/mpeg/id3v2/id3v2framefactory.cpp
--- taglib-1.4/taglib/mpeg/id3v2/id3v2framefactory.cpp	2005-07-25 23:10:42.000000000 +0200
+++ taglib-1.4-mine/taglib/mpeg/id3v2/id3v2framefactory.cpp	2007-03-05 03:58:00.714125739 +0100
@@ -72,7 +72,7 @@
   // A quick sanity check -- make sure that the frameID is 4 uppercase Latin1
   // characters.  Also make sure that there is data in the frame.
 
-  if(!frameID.size() == (version < 3 ? 3 : 4) || header->frameSize() <= 0) {
+  if(!frameID.size() == (version < 3 ? 3 : 4) || header->frameSize() < 0) {
     delete header;
     return 0;
   }
diff -ruN taglib-1.4/taglib/mpeg/id3v2/id3v2tag.cpp taglib-1.4-mine/taglib/mpeg/id3v2/id3v2tag.cpp
--- taglib-1.4/taglib/mpeg/id3v2/id3v2tag.cpp	2005-07-25 23:10:42.000000000 +0200
+++ taglib-1.4-mine/taglib/mpeg/id3v2/id3v2tag.cpp	2007-03-05 03:57:12.625436331 +0100
@@ -438,7 +438,7 @@
 
     // Checks to make sure that frame parsed correctly.
 
-    if(frame->size() <= 0) {
+    if(frame->size() < 0) {
       delete frame;
       return;
     }

--- End Message ---
--- Begin Message ---
Version: 1.11.1+dfsg.1-3
X-Debbugs-CC: [email protected] 
<https://bugs.debian.org/cgi-bin/pkgreport.cgi?submitter=lehel%40pmc-services.hu>

On Mon, 05 Mar 2007 20:44:33 +0100 Lehel Bernadt <[email protected]> wrote:
> Package: libtag1c2a
> Version: 1.4-4
> Severity: important
> Tags: patch
>
>
> I have many mp3 files which have id3v2 tags with zero-sized frames in
> them; that is, the 4 byte frame identfier, 4 nulls, and 2 flag bytes.
> This isn't an issue with other tag processing apps/libs, but taglib
> fails to parse the tag after such a frame. So only the data to the first
> such frame is processed, which leads to an incomplete display of file
> information in the various players using taglib.
> The attached patch fixes the issue.
>
> -- System Information:
> Debian Release: 4.0
> APT prefers unstable
> APT policy: (500, 'unstable')
> Architecture: i386 (i686)
> Shell: /bin/sh linked to /bin/bash
> Kernel: Linux 2.6.18-ck1
> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
>
> Versions of packages libtag1c2a depends on:
> hi libc6 2.3.6-7 GNU C Library: Shared libraries
> hi libgcc1 1:4.1.1-21 GCC support library
> hi libstdc++6 4.1.1-21 The GNU Standard C++ Library v3
> hi zlib1g 1:1.2.3-11 compression library - runtime
>
> libtag1c2a recommends no packages.
>
> -- no debconf information

I believe this issue has been fixed since 
https://github.com/taglib/taglib/issues/512 .
As a result, I am closing this bug report accordingly.

Nevertheless, my analysis could be incorrect. If you find out that this bug is 
actually
not fixed, please feel free to open a new bug report against current Debian 
releases,
or even better, work with upstream to solve the bug at upstream issue tracker.

Best Regards,
Boyuan Yang

--- End Message ---

Reply via email to