# HG changeset patch # User yaz # Date 1173084481 28800 # Node ID 83a38bcfe7c83ad2229924a85a4495ccc18b4009 # Parent 6f519e34ddf089eed2cf270318e768216b7ac26e [svn] - check the result of vfs_fread() strictly. diff -r 6f519e34ddf0 -r 83a38bcfe7c8 ChangeLog --- a/ChangeLog Mon Mar 05 00:28:52 2007 -0800 +++ b/ChangeLog Mon Mar 05 00:48:01 2007 -0800 @@ -1,3 +1,11 @@ +2007-03-05 08:28:52 +0000 William Pitcock + revision [1662] + - reject files which use Ogg container magic + + trunk/src/madplug/plugin.c | 2 ++ + 1 file changed, 2 insertions(+) + + 2007-03-05 01:32:01 +0000 Giacomo Lozito revision [1660] - aosd: remove no-longer-needed inclusion of pthread.h from aosd_osd.c diff -r 6f519e34ddf0 -r 83a38bcfe7c8 src/madplug/decoder.c --- a/src/madplug/decoder.c Mon Mar 05 00:28:52 2007 -0800 +++ b/src/madplug/decoder.c Mon Mar 05 00:48:01 2007 -0800 @@ -195,7 +195,7 @@ while (1) { remainder = stream.bufend - stream.next_frame; - + /* if (remainder >= BUFFER_SIZE) { @@ -211,7 +211,7 @@ #ifdef DEBUG g_message("scan_file: len <= 0 abort."); #endif - break; + return 0; } mad_stream_buffer(&stream, buffer, len + remainder); diff -r 6f519e34ddf0 -r 83a38bcfe7c8 src/madplug/input.c --- a/src/madplug/input.c Mon Mar 05 00:28:52 2007 -0800 +++ b/src/madplug/input.c Mon Mar 05 00:48:01 2007 -0800 @@ -557,9 +557,8 @@ /* simply read to data from the file */ len = vfs_fread(buffer, 1, buffer_size, info->infile); //vfs_fread returns num of elements. - if(len == 0){ - if(info->playback) - info->playback->eof = TRUE; + if(len == 0 && info->playback){ + info->playback->eof = TRUE; } #ifdef DEBUG diff -r 6f519e34ddf0 -r 83a38bcfe7c8 src/madplug/plugin.c --- a/src/madplug/plugin.c Mon Mar 05 00:28:52 2007 -0800 +++ b/src/madplug/plugin.c Mon Mar 05 00:48:01 2007 -0800 @@ -224,6 +224,9 @@ guchar tmp[4096]; gint ret, i; + if (fin == NULL) + return 0; + info.remote = FALSE; if(audmad_is_remote(filename)) @@ -236,12 +239,10 @@ !strcasecmp("tta", ext) || !strcasecmp("ogg", ext) || !strcasecmp("wma", ext) ) ) - return FALSE; + return 0; - if (fin == NULL) - return FALSE; - - vfs_fread(buf, 1, 4, fin); + if(vfs_fread(buf, 1, 4, fin) == 0) + return 0; check = mp3_head_convert(buf); @@ -252,7 +253,8 @@ else if (memcmp(buf, "RIFF", 4) == 0) { vfs_fseek(fin, 4, SEEK_CUR); - vfs_fread(buf, 1, 4, fin); + if(vfs_fread(buf, 1, 4, fin) == 0) + return 0; if (memcmp(buf, "RMP3", 4) == 0) return 1; @@ -260,8 +262,7 @@ while (!mp3_head_check(check)) { - ret = vfs_fread(tmp, 1, 4096, fin); - if (ret == 0) + if(vfs_fread(tmp, 1, 4096, fin) == 0) return 0; for (i = 0; i < ret; i++)