From 5c93024d1953ee5d0f060dd3bfa59b409e7f31ac Mon Sep 17 00:00:00 2001 From: Markus Uhlin Date: Sun, 4 Aug 2024 01:20:11 +0200 Subject: Bounds checking --- FICS/playerdb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'FICS/playerdb.c') diff --git a/FICS/playerdb.c b/FICS/playerdb.c index 79067ae..15959b5 100644 --- a/FICS/playerdb.c +++ b/FICS/playerdb.c @@ -1512,8 +1512,13 @@ player_lastconnect(int p) if (inout == P_LOGIN) last = lval; - 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); -- cgit v1.2.3