Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: bug fix for id3.c

bug fix for id3.c

From: Ray Lambert <listlizard_at_interthingy.net>
Date: 2005-06-15

Hi,

I just found and fixed a bug in firmware/id3.c regarding the parsing of
ID3v2 tags. The bug was an off-by-one error when applying a
zero-delimiter to the parsed value and caused some fields to have an
extra garbage character on the end.

I first noticed the problem after re-configuring grip to output both
ID3v1 and v2 tags (I had previously only used v1 tags). Afterwards, the
new files that I ripped had an extra garbage digit on the track number.
All single digit track numbers had an extra '2' character tacked on and
all two digit track numbers had an extra ')' tacked on. I suspect that
these characters were left over in the buffer from the last WPS screen
update: the last item that was formatted (using the default WPS format
on an FMR) was the ID3 type indicator: "(id3v2)" (note the '2' and the ')').

Anywho, I've pasted a patch below that fixes this, in case anyone wants
to merge it into the tree. As you can see, "+1" on the line
"tag[bytesread + 1] = 0;" was incorrect (since this is a zero-based
offset, tag[bytesread] already points to the location that needs the
delimiter), and the line that follows unnecessarily counted the
extraneous character.

~ray

diff -Nauw rockbox-daily-20050614/firmware/id3.c
rockbox-daily-20050614-id3fix/firmware/id3.c
--- rockbox-daily-20050614/firmware/id3.c 2005-02-10
05:00:06.000000000 +0000
+++ rockbox-daily-20050614-id3fix/firmware/id3.c 2005-06-14
22:09:38.470693608 +0000
@@ -673,8 +673,8 @@

                 unicode_munge( ptag, &bytesread );
                 tag = *ptag;
- tag[bytesread + 1] = 0;
- bufferpos += bytesread + 2;
+ tag[bytesread++] = 0;
+ bufferpos += bytesread;
                 if( tr->ppFunc )
                     bufferpos = tr->ppFunc(entry, tag, bufferpos);
                 break;

-- 
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
 "The music business is a cruel and shallow money trench, a long
 plastic hallway where thieves and pimps run free, and good men
 die like dogs ....... There's also a negative side."
   -- Hunter S. Thompson
#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b#b
_______________________________________________
http://cool.haxx.se/mailman/listinfo/rockbox
Received on Wed Jun 15 04:48:05 2005

Page was last modified "Jan 10 2012" The Rockbox Crew
aaa