Last-ditch grid-size limit for Dominosa

At least prevent integer overflow when constructing the grid.
This commit is contained in:
Ben Harris
2023-01-11 00:03:57 +00:00
parent 97484b098f
commit b3f3345764

View File

@ -47,6 +47,7 @@
#include <string.h>
#include <assert.h>
#include <ctype.h>
#include <limits.h>
#include <math.h>
#include "puzzles.h"
@ -243,6 +244,10 @@ static const char *validate_params(const game_params *params, bool full)
{
if (params->n < 1)
return "Maximum face number must be at least one";
if (params->n > INT_MAX - 2 ||
params->n + 2 > INT_MAX / (params->n + 1))
return "Maximum face number must not be unreasonably large";
if (params->diff >= DIFFCOUNT)
return "Unknown difficulty rating";
return NULL;