diff options
| author | Markus Uhlin <markus@nifty-networks.net> | 2026-04-04 19:52:23 +0200 |
|---|---|---|
| committer | Markus Uhlin <markus@nifty-networks.net> | 2026-04-04 19:52:23 +0200 |
| commit | 24e3b1d5351a1f6fd3a22acf1c6edb385a50c443 (patch) | |
| tree | 3ea3cf3e1ab5da1dee8cfd45708b115e2bc50552 /FICS/comproc.c | |
| parent | 2030f3546c5a310c630e8efeec2c793079a82923 (diff) | |
com_llogons: handle snprintf truncation
Diffstat (limited to 'FICS/comproc.c')
| -rw-r--r-- | FICS/comproc.c | 9 |
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 |
