aboutsummaryrefslogtreecommitdiffstats
path: root/FICS
diff options
context:
space:
mode:
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),