diff --git a/dominosa.c b/dominosa.c index 0be1c68..25f2a0b 100644 --- a/dominosa.c +++ b/dominosa.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #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;