diff src/audacious/vfs_buffered_file.c @ 2371:3b8b7d4dc10b trunk

[svn] - possible fix for VFSBufferedFile crash
author nenolod
date Sat, 20 Jan 2007 03:07:30 -0800
parents 02a850a2533b
children d68e6f302855
line wrap: on
line diff
--- a/src/audacious/vfs_buffered_file.c	Fri Jan 19 21:26:43 2007 -0800
+++ b/src/audacious/vfs_buffered_file.c	Sat Jan 20 03:07:30 2007 -0800
@@ -74,6 +74,13 @@
 {
     VFSBufferedFile *handle = (VFSBufferedFile *) stream->handle;
 
+    /* is this request within the buffered area, or should we switch to 
+     * an FD? --nenolod
+     */
+    if ((vfs_ftell(handle->buffer)) + (size * nmemb) >= 
+	((VFSBuffer *) handle->buffer->handle)->size)
+        handle->which = TRUE;
+
     return vfs_getc(handle->which == TRUE ? handle->fd : handle->buffer);
 }