Mercurial > audlegacy
diff libaudacious/vfs_stdio.c @ 821:a17888ed66a8 trunk
[svn] - safety checks
author | nenolod |
---|---|
date | Sat, 11 Mar 2006 21:06:47 -0800 |
parents | 86ca43d8a845 |
children | f12d7e208b43 |
line wrap: on
line diff
--- a/libaudacious/vfs_stdio.c Sat Mar 11 18:13:26 2006 -0800 +++ b/libaudacious/vfs_stdio.c Sat Mar 11 21:06:47 2006 -0800 @@ -58,6 +58,9 @@ { gint ret = 0; + if (file == NULL) + return -1; + if (file->handle) { if (fclose(file->handle) != 0) ret = -1; @@ -74,6 +77,9 @@ size_t nmemb, VFSFile * file) { + if (file == NULL) + return 0; + return fread(ptr, size, nmemb, file->handle); } @@ -83,6 +89,9 @@ size_t nmemb, VFSFile * file) { + if (file == NULL) + return 0; + return fwrite(ptr, size, nmemb, file->handle); } @@ -91,25 +100,37 @@ glong offset, gint whence) { + if (file == NULL) + return 0; + return fseek(file->handle, offset, whence); } void vfs_rewind(VFSFile * file) { + if (file == NULL) + return; + rewind(file->handle); } glong vfs_ftell(VFSFile * file) { + if (file == NULL) + return 0; + return ftell(file->handle); } gboolean vfs_feof(VFSFile * file) { - return (gboolean)feof(file->handle); + if (file == NULL) + return FALSE; + + return (gboolean) feof(file->handle); } gboolean @@ -133,5 +154,8 @@ gint vfs_truncate(VFSFile * file, glong size) { + if (file == NULL) + return -1; + return ftruncate(fileno(file->handle), size); }