aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2024-08-04 01:28:16 +0200
committerMarkus Uhlin <markus@nifty-networks.net>2024-08-04 01:28:16 +0200
commit87ae9a230dc4a6ba55413f5fa431785c8d64d36c (patch)
tree34ddd56d8dbfb9317180079e38f7feae68df79d2
parent5c93024d1953ee5d0f060dd3bfa59b409e7f31ac (diff)
Added bounds checking in player_lastdisconnect()
-rw-r--r--FICS/playerdb.c9
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,
- &registered, 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, &registered, ipstr) != 5) {
fprintf(stderr, "FICS: Error in login info format. %s"
"\n", fname);
fclose(fp);