X-Git-Url: https://plomlompom.com/repos/%7B%7Bdb.prefix%7D%7D/calendar?a=blobdiff_plain;f=src%2Fserver%2Fio.c;h=258ec45f5da45673e6db7ed8113dac3128d6e35f;hb=778534bf6946fe0fef17e353c55678d248d8d09d;hp=4d1b609c07457da46b3b0f94f9a65a0202d2b867;hpb=82d6b1d84158748757619db03defd3aee4546636;p=plomrogue diff --git a/src/server/io.c b/src/server/io.c index 4d1b609..258ec45 100644 --- a/src/server/io.c +++ b/src/server/io.c @@ -180,8 +180,10 @@ static void read_file_into_queue() static void update_worldstate_file() { char * f_name = "update_worldstate_file()"; - char path_tmp[strlen(s[PATH_WORLDSTATE]) + strlen(s[PATH_SUFFIX_TMP]) + 1]; - sprintf(path_tmp, "%s%s", s[PATH_WORLDSTATE], s[PATH_SUFFIX_TMP]); + uint16_t size = strlen(s[PATH_WORLDSTATE]) + strlen(s[PATH_SUFFIX_TMP]) + 1; + char * path_tmp = try_malloc(size, f_name); + int test = sprintf(path_tmp, "%s%s", s[PATH_WORLDSTATE],s[PATH_SUFFIX_TMP]); + exit_trouble(test < 0, f_name, "sprintf()"); FILE * file = try_fopen(path_tmp, "w", f_name); struct Thing * player = get_player(); write_value_as_line(world.turn, file); @@ -196,6 +198,7 @@ static void update_worldstate_file() try_fwrite(world.log, strlen(world.log), 1, file, f_name); } try_fclose_unlink_rename(file, path_tmp, s[PATH_WORLDSTATE], f_name); + free(path_tmp); set_cleanup_flag(CLEANUP_WORLDSTATE); char * dot = ".\n";; try_fwrite(dot, strlen(dot), 1, world.file_out, f_name); @@ -208,7 +211,7 @@ static void write_value_as_line(uint32_t value, FILE * file) { char * f_name = "write_value_as_line()"; char write_buf[12]; /* Holds 10 digits of uint32_t maximum + \n + \0. */ - sprintf(write_buf, "%u\n", value); + exit_trouble(sprintf(write_buf, "%u\n", value) < 0, f_name, "sprintf()"); try_fwrite(write_buf, strlen(write_buf), 1, file, f_name); }