summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-09-16 10:14:56 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-09-16 10:14:56 +0000
commitf9a46c1cda57be492eb4cf562222900a5d4cf260 (patch)
tree46791de937a5c3bd11496e7fe2faf2ae03e0d692
parent9fe53cda9a0cc7608b6ef32184cfd59f42f2e91e (diff)
downloadrockbox-f9a46c1cda57be492eb4cf562222900a5d4cf260.zip
rockbox-f9a46c1cda57be492eb4cf562222900a5d4cf260.tar.gz
rockbox-f9a46c1cda57be492eb4cf562222900a5d4cf260.tar.bz2
rockbox-f9a46c1cda57be492eb4cf562222900a5d4cf260.tar.xz
When getting tag contents, we might read a tag which has a part of it within
our buffer and part outside. This adjusts so that we only attempt to read the part of the tag that is inside the buffer. Magnus Holmgren helped out here! git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2297 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/id3.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/firmware/id3.c b/firmware/id3.c
index 96b1b51..e70c288 100644
--- a/firmware/id3.c
+++ b/firmware/id3.c
@@ -225,9 +225,9 @@ static void setid3v2title(int fd, struct mp3entry *entry)
(header[5]);
}
- /* Continue if the frame length seems bad */
- if(headerlen > size)
- continue;
+ /* Get only the part of the header that is within our buffer */
+ if(headerlen > (size-readsize))
+ headerlen = (size - readsize);
/* Check for certain frame headers */
if(!strncmp(header, "TPE1", strlen("TPE1")) ||