diff options
author | Markus Uhlin <markus@nifty-networks.net> | 2024-08-04 01:28:16 +0200 |
---|---|---|
committer | Markus Uhlin <markus@nifty-networks.net> | 2024-08-04 01:28:16 +0200 |
commit | 87ae9a230dc4a6ba55413f5fa431785c8d64d36c (patch) | |
tree | 34ddd56d8dbfb9317180079e38f7feae68df79d2 | |
parent | 5c93024d1953ee5d0f060dd3bfa59b409e7f31ac (diff) |
Added bounds checking in player_lastdisconnect()
-rw-r--r-- | FICS/playerdb.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/FICS/playerdb.c b/FICS/playerdb.c index 15959b5..46ae464 100644 --- a/FICS/playerdb.c +++ b/FICS/playerdb.c @@ -1555,8 +1555,13 @@ player_lastdisconnect(int p) return 0; while (!feof(fp)) { - if (fscanf(fp, "%d %s %ld %d %s\n", &inout, loginName, &lval, - ®istered, ipstr) != 5) { + _Static_assert(19 < ARRAY_SIZE(loginName), + "'loginName' too small"); + _Static_assert(19 < ARRAY_SIZE(ipstr), + "'ipstr' too small"); + + if (fscanf(fp, "%d %19s %ld %d %19s\n", &inout, loginName, + &lval, ®istered, ipstr) != 5) { fprintf(stderr, "FICS: Error in login info format. %s" "\n", fname); fclose(fp); |