[patch] fix zero length ID3v2 frames

Scott Wheeler wheeler at kde.org
Sun Sep 4 22:55:44 CEST 2005


On Wednesday 31 August 2005 12:27, Andrew de Quincey wrote:
> Hi, I had a couple of mp3 files that taglib just ignored the ID3 contents
> of. Turns out they have several 0 length frames in them.
>
> The attached patch makes taglib ignore any zero length frames completely,
> while still parsing other frames correctly. I thought this would be more
> fault tolerant than just attempting to parse them as normal frames - e.g.
> in case we find a 0 length text frame, which would be quite invalid (no
> text encoding information).

I'm not quite sure on this one -- the frames will definitely need to be 
discarded since per the ID3v2 spec frames are required to contain at least 
one byte of information.

The remaining question is what to do when broken frames are encountered.  I'll 
probably apply some version of this, but there's still a case that worries 
me:

There's no offset table for frames in ID3v2, so you have to iterate through 
them when parsing.  When frames have invalid values they're often just wrong 
-- i.e. it might say "0" and then actual content follows.  That throws off 
the rest of the parsing and can cause some strange errors...

-Scott

-- 
The fact that an opinion has been widely held is no evidence whatever that it 
is not utterly absurd. 
--Bertrand Russell


More information about the taglib-devel mailing list