diff options
| author | Markus Uhlin <markus@nifty-networks.net> | 2026-03-11 12:25:33 +0100 |
|---|---|---|
| committer | Markus Uhlin <markus@nifty-networks.net> | 2026-03-11 12:25:33 +0100 |
| commit | 66355099ec3540c575b07efa7f214ffd6a3340ff (patch) | |
| tree | 01476a0fca2a0fb78ccfafbc064ed63cecc74c49 | |
| parent | 5336b9e28f7887cb0e6f0053a3c347402150d5fd (diff) | |
rating_recalc: check for snprintf truncation
| -rw-r--r-- | FICS/ratings.c | 8 |
1 files changed, 7 insertions, 1 deletions
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; |
