From 66355099ec3540c575b07efa7f214ffd6a3340ff Mon Sep 17 00:00:00 2001 From: Markus Uhlin Date: Wed, 11 Mar 2026 12:25:33 +0100 Subject: rating_recalc: check for snprintf truncation --- FICS/ratings.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'FICS') diff --git a/FICS/ratings.c b/FICS/ratings.c index 862fdd4..f8cc424 100644 --- a/FICS/ratings.c +++ b/FICS/ratings.c @@ -688,6 +688,7 @@ rating_recalc(void) char dname[MAX_FILENAME_SIZE]; int c; int p1; + int ret; #if USE_DIRENT struct dirent *dp; #else @@ -700,7 +701,12 @@ rating_recalc(void) zero_stats(); for (c = 'a'; c <= 'z'; c++) { - snprintf(dname, sizeof dname, "%s/%c", player_dir, c); + ret = snprintf(dname, sizeof dname, "%s/%c", player_dir, c); + + if (is_too_long(ret, sizeof dname)) { + warnx("%s: too long dir name", __func__); + return; + } if ((dirp = opendir(dname)) == NULL) continue; -- cgit v1.2.3