diff options
author | Markus Uhlin <markus@nifty-networks.net> | 2024-03-23 13:56:59 +0100 |
---|---|---|
committer | Markus Uhlin <markus@nifty-networks.net> | 2024-03-23 13:56:59 +0100 |
commit | 57642387b4605582b95bfcfc7481f8c89e056daf (patch) | |
tree | d1abe6178bea1bd5d06999b9749ddb7a824eda5c | |
parent | 1a3fa38ff628282f2f2a95bb4695c9d732d06a05 (diff) |
strlcat() plus truncation checks
-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 8e4711f..1009c46 100644 --- a/FICS/comproc.c +++ b/FICS/comproc.c @@ -350,13 +350,16 @@ com_stats_rating(char *hdr, statistics *stats, char *dest, const size_t dsize) if (stats->whenbest) { snprintf(tmp, sizeof tmp, " %d", stats->best); - strcat(dest, tmp); + strlcat(dest, tmp, dsize); strftime(tmp, sizeof tmp, " (%d-%b-%y)", localtime((time_t *) &stats->whenbest)); - strcat(dest, tmp); + strlcat(dest, tmp, dsize); } - strcat(dest, "\n"); + if (strlcat(dest, "\n", dsize) >= dsize) { + (void) fprintf(stderr, "FICS: %s (line %d): warning: strlcat() " + "truncated\n", __func__, __LINE__); + } } PUBLIC int |