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.
This commit is contained in:
Ben Harris
2023-01-28 23:12:52 +00:00
parent 28671e76b7
commit 75e8a1a9ca

View File

@ -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 != ',')