From 75e8a1a9cabe7567f6019b1226783b61ba1ac42f Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Sat, 28 Jan 2023 23:12:52 +0000 Subject: [PATCH] Limit number of mines in Mines game description Without this, it's possible to specify a description that has more mines than there are places on the board to place them, which eventually leads to a division by zero. This can be demonstrated by entering a game description of "3:r8,u," and then clicking anywhere on the board. --- mines.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mines.c b/mines.c index 325c850..5674849 100644 --- a/mines.c +++ b/mines.c @@ -2006,6 +2006,8 @@ static const char *validate_desc(const game_params *params, const char *desc) desc++; if (!*desc || !isdigit((unsigned char)*desc)) return "No initial mine count in game description"; + if (atoi(desc) > wh - 9) + return "Too many mines for grid size"; while (*desc && isdigit((unsigned char)*desc)) desc++; /* skip over mine count */ if (*desc != ',')