From 7f1346d641b3d9ec26bc0e1d252b332443443cfa Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Tue, 19 Sep 2006 18:27:43 +0000 Subject: Fixed a division by zero in mp3 metadata parser. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11003 a1c6a512-1295-4272-9138-f99709370657 --- firmware/id3.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'firmware') diff --git a/firmware/id3.c b/firmware/id3.c index 3f2ba23684..5dfb3fbe50 100644 --- a/firmware/id3.c +++ b/firmware/id3.c @@ -1000,7 +1000,11 @@ static int getsonglength(int fd, struct mp3entry *entry) if(filetime == 0) { - filetime = (entry->filesize - bytecount) / (info.bitrate / 8); + /* Prevent a division by zero */ + if (info.bitrate < 8) + filetime = 0; + else + filetime = (entry->filesize - bytecount) / (info.bitrate / 8); /* bitrate is in kbps so this delivers milliseconds. Doing bitrate / 8 * instead of filesize * 8 is exact, because mpeg audio bitrates are * always multiples of 8, and it avoids overflows. */ -- cgit v1.2.3