commit acc3e1bcd5460c709d9f18c07079fe4a6b8d9846 from: Markus Uhlin date: Mon May 20 00:55:21 2024 UTC add_item: allow non-existent old file commit - b893b787cf33db7b9672b44c31066224b5cfd70e commit + acc3e1bcd5460c709d9f18c07079fe4a6b8d9846 blob - 8f8144830390c50575f345dce85528b5a62b0dcc blob + 32746e7cb373bee22079c29c3151cfde73328275 --- FICS/adminproc.c +++ FICS/adminproc.c @@ -211,14 +211,13 @@ add_item(char *new_item, char *filename) msnprintf(tmp_file, sizeof tmp_file, "%s/.tmp.idx", news_dir); - new_fp = fopen(tmp_file, "w"); - old_fp = fopen(filename, "r"); - - if (!new_fp || !old_fp) + if ((new_fp = fopen(tmp_file, "w")) == NULL) return 0; - fprintf(new_fp, "%s", new_item); + if ((old_fp = fopen(filename, "r")) == NULL) + goto end; + while (1) { fgets(junk, MAX_LINE_SIZE, old_fp); @@ -227,9 +226,12 @@ add_item(char *new_item, char *filename) fprintf(new_fp, "%s", junk); } + end: fclose(new_fp); - fclose(old_fp); - remove(filename); + if (old_fp) { + fclose(old_fp); + remove(filename); + } rename(tmp_file, filename); return 1;