aboutsummaryrefslogtreecommitdiffstats
path: root/FICS
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2025-04-05 13:09:42 +0200
committerMarkus Uhlin <markus@nifty-networks.net>2025-04-05 13:09:42 +0200
commit66fca5136293ae4e02d7ec7b387c3ba3ebf87d7b (patch)
treee8c2c1419e1d4fccf35f5faaf44431ee49183f26 /FICS
parentda5735727fcc04df52ba4c136a403fc9c90f8ee6 (diff)
got_attr_value: check half moves
Diffstat (limited to 'FICS')
-rw-r--r--FICS/gamedb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/FICS/gamedb.c b/FICS/gamedb.c
index 7d094c2..abb31ff 100644
--- a/FICS/gamedb.c
+++ b/FICS/gamedb.c
@@ -1071,6 +1071,12 @@ got_attr_value(int g, char *attr, char *value, FILE *fp, char *file)
if (garray[g].numHalfMoves == 0)
return 0;
+ else if (garray[g].numHalfMoves < 0 ||
+ (size_t)garray[g].numHalfMoves > INT_MAX / sizeof(move_t)) {
+ warnx("%s: num half moves out-of-bounds (%d)", __func__,
+ garray[g].numHalfMoves);
+ return -1;
+ }
garray[g].moveListSize = garray[g].numHalfMoves;
garray[g].moveList = reallocarray(NULL, sizeof(move_t),