aboutsummaryrefslogtreecommitdiffstats
path: root/FICS
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2026-03-14 22:46:32 +0100
committerMarkus Uhlin <markus@nifty-networks.net>2026-03-14 22:46:32 +0100
commitfab36a57f296665ce8ab27d97b6664deaa1a1ad1 (patch)
treec4991d0a73d5aea39b6d5c0a1630c4550d12d0a1 /FICS
parent7feae69a436df186dc43554c47a579c44e690ecf (diff)
player_add_comment: fixed unchecked function return values
Diffstat (limited to 'FICS')
-rw-r--r--FICS/playerdb.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/FICS/playerdb.c b/FICS/playerdb.c
index f3213e5..909417d 100644
--- a/FICS/playerdb.c
+++ b/FICS/playerdb.c
@@ -3322,15 +3322,15 @@ player_add_comment(int p_by, int p_to, char *comment)
FILE *fp;
char fname[MAX_FILENAME_SIZE] = { '\0' };
int fd;
- int ret;
+ int ret[3];
time_t t = time(NULL);
if (!parray[p_to].registered)
return -1;
- ret = snprintf(fname, sizeof fname, "%s/player_data/%c/%s.%s",
+ ret[0] = snprintf(fname, sizeof fname, "%s/player_data/%c/%s.%s",
stats_dir, parray[p_to].login[0], parray[p_to].login, "comments");
- if (is_too_long(ret, sizeof fname)) {
+ if (is_too_long(ret[0], sizeof fname)) {
warnx("%s: filename too long", __func__);
return -1;
}
@@ -3340,12 +3340,22 @@ player_add_comment(int p_by, int p_to, char *comment)
return -1;
} else if ((fp = fdopen(fd, "a")) == NULL) {
warn("%s: fdopen", __func__);
- close(fd);
+
+ if (close(fd) != 0)
+ warn("%s: error closing file descriptor", __func__);
+
+ return -1;
+ }
+
+ ret[1] = fprintf(fp, "%s at %s: %s\n", parray[p_by].name, strltime(&t),
+ comment);
+ ret[2] = fclose(fp);
+
+ if (ret[1] < 0 || ret[2] != 0) {
+ warnx("%s: certain file operations failed", __func__);
return -1;
}
- fprintf(fp, "%s at %s: %s\n", parray[p_by].name, strltime(&t), comment);
- fclose(fp);
parray[p_to].num_comments = player_num_comments(p_to);
return 0;
}