From: David Griffith Date: Tue, 4 Sep 2018 07:56:30 +0000 (-0700) Subject: Fix string termination problems that caused #92. X-Git-Url: https://scope-eye.net/git/?a=commitdiff_plain;h=f0eb7da7688f28182cc9a16c0961c91750025ad7;p=liskon_frotz.git Fix string termination problems that caused #92. --- diff --git a/src/sdl/sf_util.c b/src/sdl/sf_util.c index 27a238c..17b2a36 100644 --- a/src/sdl/sf_util.c +++ b/src/sdl/sf_util.c @@ -393,12 +393,12 @@ void os_process_arguments (int argc, char *argv[]) strncat(f_setup.command_name, EXT_COMMAND, strlen(EXT_COMMAND)); if (!f_setup.restore_mode) { - f_setup.save_name = malloc(strlen(f_setup.story_name) * sizeof(char) + 5); - strncpy(f_setup.save_name, f_setup.story_name, strlen(f_setup.story_name)); + f_setup.save_name = malloc((strlen(f_setup.story_name) + strlen(EXT_SAVE)) * sizeof(char) + 1); + strncpy(f_setup.save_name, f_setup.story_name, strlen(f_setup.story_name) + 1); strncat(f_setup.save_name, EXT_SAVE, strlen(EXT_SAVE)); } else { /*Set our auto load save as the name_save*/ - f_setup.save_name = malloc(strlen(f_setup.tmp_save_name) * sizeof(char) + 5); - strncpy(f_setup.save_name, f_setup.tmp_save_name, strlen(f_setup.tmp_save_name)); + f_setup.save_name = malloc((strlen(f_setup.tmp_save_name) + strlen(EXT_SAVE)) * sizeof(char) + 1); + strncpy(f_setup.save_name, f_setup.tmp_save_name, strlen(f_setup.tmp_save_name) + 1); free(f_setup.tmp_save_name); } @@ -487,14 +487,14 @@ extern char stripped_story_name[]; static char *getextension( int flag) { - char *ext = ".aux"; + char *ext = EXT_AUX; if (flag == FILE_SAVE || flag == FILE_RESTORE) - ext = ".sav"; + ext = EXT_SAVE; else if (flag == FILE_SCRIPT) - ext = ".scr"; + ext = EXT_SCRIPT; else if (flag == FILE_RECORD || flag == FILE_PLAYBACK) - ext = ".rec"; + ext = EXT_COMMAND; return ext; }