diff options
Diffstat (limited to 'src/doom/p_saveg.c')
-rw-r--r-- | src/doom/p_saveg.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/doom/p_saveg.c b/src/doom/p_saveg.c index 7dd386a3..5fa70fea 100644 --- a/src/doom/p_saveg.c +++ b/src/doom/p_saveg.c @@ -38,6 +38,7 @@ // State. #include "doomstat.h" #include "g_game.h" +#include "m_misc.h" #include "r_state.h" #define SAVEGAME_EOF 0x1d @@ -57,11 +58,9 @@ char *P_TempSaveGameFile(void) if (filename == NULL) { - filename = malloc(strlen(savegamedir) + 32); + filename = M_StringJoin(savegamedir, "temp.dsg", NULL); } - sprintf(filename, "%stemp.dsg", savegamedir); - return filename; } @@ -70,16 +69,17 @@ char *P_TempSaveGameFile(void) char *P_SaveGameFile(int slot) { static char *filename = NULL; + static size_t filename_size = 0; 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; } @@ -1363,7 +1363,7 @@ void P_WriteSaveGameHeader(char *description) saveg_write8(0); memset(name, 0, sizeof(name)); - sprintf(name, "version %i", G_VanillaVersionCode()); + snprintf(name, sizeof(name), "version %i", G_VanillaVersionCode()); for (i=0; i<VERSIONSIZE; ++i) saveg_write8(name[i]); @@ -1400,7 +1400,7 @@ boolean P_ReadSaveGameHeader(void) read_vcheck[i] = saveg_read8(); memset(vcheck, 0, sizeof(vcheck)); - sprintf(vcheck, "version %i", G_VanillaVersionCode()); + snprintf(vcheck, sizeof(vcheck), "version %i", G_VanillaVersionCode()); if (strcmp(read_vcheck, vcheck) != 0) return false; // bad version |