diff options
Diffstat (limited to 'src/strife/p_saveg.c')
-rw-r--r-- | src/strife/p_saveg.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/strife/p_saveg.c b/src/strife/p_saveg.c index bc014de9..5c80d42b 100644 --- a/src/strife/p_saveg.c +++ b/src/strife/p_saveg.c @@ -58,11 +58,9 @@ char *P_TempSaveGameFile(void) if (filename == NULL) { - filename = malloc(strlen(savegamedir) + 32); + filename = M_StringJoin(savegamdir, "temp.dsg"); } - sprintf(filename, "%stemp.dsg", savegamedir); - return filename; } @@ -71,16 +69,18 @@ char *P_TempSaveGameFile(void) char *P_SaveGameFile(int slot) { static char *filename = NULL; + static size_t filename_size; char basename[32]; if (filename == NULL) { - filename = malloc(strlen(savegamedir) + 32); + filename_size = strlen(savegamedir) + 32; + filename = malloc(filename_size); } DEH_snprintf(basename, 32, SAVEGAMENAME "%d.dsg", slot); - sprintf(filename, "%s%s", savegamedir, basename); + snprintf(filename, filename_size, "%s%s", savegamedir, basename); return filename; } @@ -1609,7 +1609,7 @@ void P_WriteSaveGameHeader(char *description) */ memset (name,0,sizeof(name)); - sprintf (name,"ver %i",STRIFE_VERSION); + snprintf(name, sizeof(name), "ver %i", STRIFE_VERSION); for (i=0; i<VERSIONSIZE; ++i) saveg_write8(name[i]); @@ -1648,8 +1648,8 @@ boolean P_ReadSaveGameHeader(void) for (i=0; i<VERSIONSIZE; ++i) read_vcheck[i] = saveg_read8(); - memset (vcheck,0,sizeof(vcheck)); - sprintf (vcheck,"ver %i",STRIFE_VERSION); + memset (vcheck,0,sizeof(vcheck)); + snprintf(vcheck, sizeof(vcheck), "ver %i", STRIFE_VERSION); if (strcmp(read_vcheck, vcheck) != 0) return false; // bad version |