From b3f3345764b0808a7a97b9c3a2a1888fd62383a0 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 11 Jan 2023 00:03:57 +0000 Subject: Last-ditch grid-size limit for Dominosa At least prevent integer overflow when constructing the grid. --- dominosa.c | 5 +++++ 1 file changed, 5 insertions(+) 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; -- cgit v1.1