diff options
| author | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-10 20:39:57 +0000 |
|---|---|---|
| committer | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-15 16:24:27 +0000 |
| commit | 8a3fb82e230c5cf18b82f54687c2a56f53875a38 (patch) | |
| tree | a55e08f5fa20c930e63669728f0d5e03e4327f50 | |
| parent | 91c0fac1dc98be2ecc074d83368df74f9f755641 (diff) | |
| download | puzzles-8a3fb82e230c5cf18b82f54687c2a56f53875a38.zip puzzles-8a3fb82e230c5cf18b82f54687c2a56f53875a38.tar.gz puzzles-8a3fb82e230c5cf18b82f54687c2a56f53875a38.tar.bz2 puzzles-8a3fb82e230c5cf18b82f54687c2a56f53875a38.tar.xz | |
Last-ditch maximum size limit for Pearl
This makes sure that width * height <= INT_MAX, which it rather needs
to be.
| -rw-r--r-- | pearl.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -35,6 +35,7 @@ #include <string.h> #include <assert.h> #include <ctype.h> +#include <limits.h> #include <math.h> #include "puzzles.h" @@ -272,6 +273,8 @@ static const char *validate_params(const game_params *params, bool full) { if (params->w < 5) return "Width must be at least five"; if (params->h < 5) return "Height must be at least five"; + if (params->w > INT_MAX / params->h) + return "Width times height must not be unreasonably large"; if (params->difficulty < 0 || params->difficulty >= DIFFCOUNT) return "Unknown difficulty level"; if (params->difficulty >= DIFF_TRICKY && params->w + params->h < 11) |