diff --git a/engine/client/snd_mem.c b/engine/client/snd_mem.c index 79331e8fd..09f92c9f8 100644 --- a/engine/client/snd_mem.c +++ b/engine/client/snd_mem.c @@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "quakedef.h" #include "winquake.h" +#include "errno.h" int cache_full_cycle; @@ -806,6 +807,10 @@ sfxcache_t *S_LoadSound (sfx_t *s) com_filesize = COM_filelength(f); data = Hunk_TempAlloc (com_filesize); result = fread(data, 1, com_filesize, f); //do something with result + + if (result != com_filesize) + Con_SafePrintf("S_LoadSound() fread: Filename: %s, expected %i, result was %i (%i)\n",name,com_filesize,result,errno); + fclose(f); } else diff --git a/engine/client/sys_linux.c b/engine/client/sys_linux.c index cbee0c4e0..e684dfb74 100644 --- a/engine/client/sys_linux.c +++ b/engine/client/sys_linux.c @@ -355,6 +355,10 @@ int Sys_DebugLog(char *file, char *fmt, ...) if (fd) { result = write(fd, data, strlen(data)); // do something with result + + if (result != strlen(data)) + Con_SafePrintf("Sys_DebugLog() write: Filename: %s, expected %i, result was %i (%i)\n",file,strlen(data),result,errno); + close(fd); return 0; } diff --git a/engine/common/cmd.c b/engine/common/cmd.c index 4ea657d9b..cc512415d 100644 --- a/engine/common/cmd.c +++ b/engine/common/cmd.c @@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // cmd.c -- Quake script command processing module #include "quakedef.h" +#include "errno.h" cvar_t com_fs_cache = SCVARF("fs_cache", IFMINIMAL("2","1"), CVAR_ARCHIVE); cvar_t rcon_level = SCVAR("rcon_level", "20"); @@ -1119,6 +1120,10 @@ char *Cmd_ExpandCvar(char *cvarname, int maxaccesslevel, int *len) } result = strtol(cvarname, &end, 10); // do something with result + + if (result == 0) + Con_DPrintf("Cmd_ExpandCvar() strtol returned zero cvar: %s (%i)\n", cvarname, errno); + if (fixval && *end == '\0') //only expand $0 if its actually ${0} - this avoids conflicting with the $0 macro { //purely numerical ret = Cmd_Argv(atoi(cvarname)); diff --git a/engine/common/common.c b/engine/common/common.c index aa57acc26..38124475a 100644 --- a/engine/common/common.c +++ b/engine/common/common.c @@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "quakedef.h" #include +#include // These 4 libraries required for the version command @@ -3032,6 +3033,10 @@ void COM_InitArgv (int argc, const char **argv) //not allowed to tprint buffer = (char*)malloc(len+1); result = fread(buffer, 1, len, f); // do something with result + + if (result != len) + Con_SafePrintf("COM_InitArgv() fread: Filename: %s, expected %i, result was %i (%i)\n",va("%s_p.txt", argv[0]),len,result,errno); + buffer[len] = '\0'; while (*buffer && (argc < MAX_NUM_ARGVS)) diff --git a/engine/common/fs_stdio.c b/engine/common/fs_stdio.c index 3eb501ef4..184febab1 100644 --- a/engine/common/fs_stdio.c +++ b/engine/common/fs_stdio.c @@ -1,5 +1,6 @@ #include "quakedef.h" #include "fs.h" +#include "errno.h" #ifdef WEBSVONLY #define Z_Free free @@ -221,6 +222,10 @@ static void FSSTDIO_ReadFile(void *handle, flocation_t *loc, char *buffer) return; fseek(f, loc->offset, SEEK_SET); result = fread(buffer, 1, loc->len, f); // do soemthing with result + + if (result != loc->len) + Con_SafePrintf("FSSTDIO_ReadFile() fread: Filename: %s, expected %i, result was %i (%i)\n",loc->rawname,loc->len,result,errno); + fclose(f); } static int FSSTDIO_EnumerateFiles (void *handle, const char *match, int (*func)(const char *, int, void *), void *parm) diff --git a/engine/common/gl_q2bsp.c b/engine/common/gl_q2bsp.c index 048a0f96b..708fd521d 100644 --- a/engine/common/gl_q2bsp.c +++ b/engine/common/gl_q2bsp.c @@ -3,6 +3,7 @@ #include "glquake.h" #endif #include "com_mesh.h" +#include "errno.h" #define MAX_Q3MAP_INDICES 0x80000 #define MAX_Q3MAP_VERTEXES 0x80000 @@ -5663,6 +5664,10 @@ void CM_ReadPortalState (FILE *f) size_t result; result = fread (portalopen, 1, sizeof(portalopen), f); // do something with result + + if (result != sizeof(portalopen)) + Con_SafePrintf("CM_ReadPortalState() fread: expected %i, result was %i (%i)\n",sizeof(portalopen),result,errno); + FloodAreaConnections (); } diff --git a/engine/common/translate.c b/engine/common/translate.c index 0e7a454f8..de1c9927f 100644 --- a/engine/common/translate.c +++ b/engine/common/translate.c @@ -1,4 +1,5 @@ #include "quakedef.h" +#include "errno.h" #undef malloc #undef free @@ -582,6 +583,10 @@ void TL_LoadLanguage (char *name, char *shortname, int num) //this is one of the buffer = malloc(size+1); buffer[size] = '\0'; result = fread(buffer, 1, size, f); // do something with result + + if (result != size) + Con_SafePrintf("TL_LoadLanguage() fread: Filename: %s, expected %i, result was %i (%i)\n",va("%s.trl", shortname),size,result,errno); + fclose(f); TL_ParseLanguage(name, buffer, num); diff --git a/engine/qclib/qccmain.c b/engine/qclib/qccmain.c index 669cb6f2d..b51876a2f 100644 --- a/engine/qclib/qccmain.c +++ b/engine/qclib/qccmain.c @@ -7,6 +7,8 @@ #include #endif +#include "errno.h" + char QCC_copyright[1024]; int QCC_packid; char QCC_Packname[5][128]; @@ -296,6 +298,9 @@ void QCC_BspModels (void) name[strlen(m)-4] = 0; sprintf (cmd, "qbsp %s/%s ; light -extra %s/%s", gamedir, name, gamedir, name); result = system (cmd); // do something with the result + + if (result != 0) + QCC_Error(ERR_INTERNAL, "QCC_BspModels() system returned non zero (failure) with: qbsp %s/%s ; light -extra %s/%s (%i)\n", gamedir, name, gamedir, name, errno); } } diff --git a/engine/server/sv_rankin.c b/engine/server/sv_rankin.c index 6d4657e44..eddede6ad 100644 --- a/engine/server/sv_rankin.c +++ b/engine/server/sv_rankin.c @@ -1,4 +1,5 @@ #include "qwsvdef.h" +#include "errno.h" #ifndef CLIENTONLY @@ -41,9 +42,8 @@ void inline READ_PLAYERSTATS(int x, rankstats_t *os) fseek(rankfile, sizeof(rankfileheader_t)+sizeof(rankheader_t)+((x-1)*sizeof(rankinfo_t)), SEEK_SET); result = fread(os, sizeof(rankstats_t), 1, rankfile); - // ignoring return value of ‘fread’, declared with attribute warn_unused_result - if (result != 1) - fprintf(stderr, "fread() error in READ_PLAYERSTATS\n"); + if (result != sizeof(rankstats_t)) + Con_SafePrintf("READ_PLAYERSTATS() fread: expected %i, result was %i (%i)\n",sizeof(rankstats_t),result,errno); os->kills = swaplong(os->kills); os->deaths = swaplong(os->deaths); @@ -84,9 +84,8 @@ void inline READ_PLAYERHEADER(int x, rankheader_t *oh) result = fread(oh, sizeof(rankheader_t), 1, rankfile); - // ignoring return value of ‘fread’, declared with attribute warn_unused_result - if (result != 1) - fprintf(stderr, "fread() error in WRITE_PLAYERSTATS\n"); + if (result != sizeof(rankheader_t)) + Con_SafePrintf("READ_PLAYERHEADER() fread: expected %i, result was %i (%i)\n",sizeof(rankheader_t),result,errno); oh->prev = swaplong(oh->prev); //score is held for convineance. oh->next = swaplong(oh->next); @@ -164,9 +163,8 @@ qboolean Rank_OpenRankings(void) fseek(rankfile, 0, SEEK_SET); result = fread(&rankfileheader, sizeof(rankfileheader_t), 1, rankfile); - // ignoring return value of ‘fread’, declared with attribute warn_unused_result - if (result != 1) - fprintf(stderr, "fread() error in Rank_OpenRankings\n"); + if (result != sizeof(rankfileheader_t)) + Con_SafePrintf("Rank_OpenRankings() fread: expected %i, result was %i (%i)\n",sizeof(rankfileheader_t),result,errno); rankfileheader.version = swaplong(rankfileheader.version); rankfileheader.usedslots = swaplong(rankfileheader.usedslots); diff --git a/engine/server/sv_sys_unix.c b/engine/server/sv_sys_unix.c index 50ea59f0e..12b68b428 100644 --- a/engine/server/sv_sys_unix.c +++ b/engine/server/sv_sys_unix.c @@ -117,6 +117,10 @@ int Sys_DebugLog(char *file, char *fmt, ...) if (fd) { result = write(fd, data, strlen(data)); // do something with the result + + if (result != strlen(data)) + Con_SafePrintf("Sys_DebugLog() write: Filename: %s, expected %i, result was %i (%i)\n",file,strlen(data),result,errno); + close(fd); return 0; }