aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2026-04-04 19:52:23 +0200
committerMarkus Uhlin <markus@nifty-networks.net>2026-04-04 19:52:23 +0200
commit24e3b1d5351a1f6fd3a22acf1c6edb385a50c443 (patch)
tree3ea3cf3e1ab5da1dee8cfd45708b115e2bc50552
parent2030f3546c5a310c630e8efeec2c793079a82923 (diff)
com_llogons: handle snprintf truncation
-rw-r--r--FICS/comproc.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/FICS/comproc.c b/FICS/comproc.c
index d0f4fb9..9adab01 100644
--- a/FICS/comproc.c
+++ b/FICS/comproc.c
@@ -855,12 +855,15 @@ plogins(int p, char *fname)
PUBLIC int
com_llogons(int p, param_list param)
{
- char fname[MAX_FILENAME_SIZE] = { '\0' };
+ char fname[MAX_FILENAME_SIZE] = { '\0' };
+ int ret;
(void) param; // XXX: unused
- snprintf(fname, sizeof fname, "%s/%s", stats_dir, STATS_LOGONS);
- return plogins(p, fname);
+ ret = snprintf(fname, sizeof fname, "%s/%s", stats_dir, STATS_LOGONS);
+
+ return (is_too_long(ret, sizeof fname) ? COM_FAILED :
+ plogins(p, fname));
}
PUBLIC int