commit 91fa3e845d9f90f289d6bcf4c4cc91ee050fb315 from: Markus Uhlin date: Tue Aug 19 01:38:58 2025 UTC Usage of open() commit - 82f1cb9aac57634234312b0968c832928b30af01 commit + 91fa3e845d9f90f289d6bcf4c4cc91ee050fb315 blob - fad2df5b9620457d16ff72ee86f5aee2927a5f90 blob + f3a351bc58a8529db0cf352b4043513c8b28f762 --- FICS/gamedb.c +++ FICS/gamedb.c @@ -1562,6 +1562,7 @@ game_save(int g) char fname[MAX_FILENAME_SIZE]; char lname[MAX_FILENAME_SIZE]; game *gg = &garray[g]; + int fd; player *wp, *bp; wp = &parray[gg->white]; @@ -1572,11 +1573,13 @@ game_save(int g) msnprintf(lname, sizeof lname, "%s/%c/%s-%s", adj_dir, bp->login[0], wp->login, bp->login); - fp = fopen(fname, "w"); - - if (!fp) { + if ((fd = open(fname, g_open_flags[1], g_open_modes)) < 0) { + warn("%s: open: %s", __func__, fname); + return -1; + } else if ((fp = fdopen(fd, "w")) == NULL) { fprintf(stderr, "FICS: Problem opening file %s for write\n", fname); + close(fd); return -1; } @@ -1758,12 +1761,13 @@ write_g_out(int g, char *file, int maxlines, int isDra char *name, time_t *now) { FILE *fp; - char *goteco; char cResult; char tmp[2048] = { '\0' }; - char *ptmp = tmp; char type[4]; + char *goteco; + char *ptmp = tmp; int count = -1; + int fd; int wp, bp; int wr, br; @@ -1830,8 +1834,14 @@ write_g_out(int g, char *file, int maxlines, int isDra count = (count + 1) % 100; - if ((fp = fopen(file, "a")) == NULL) + if ((fd = open(file, g_open_flags[0], g_open_modes)) < 0) { + warn("%s: open: %s", __func__, file); return; + } else if ((fp = fdopen(fd, "a")) == NULL) { + close(fd); + return; + } + goteco = getECO(g); /*