diff options
| author | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-10 20:24:49 +0000 |
|---|---|---|
| committer | Ben Harris <bjh21@bjh21.me.uk> | 2023-01-15 16:24:27 +0000 |
| commit | 051357bb24c0f05c291d6f9e6b460839847923b4 (patch) | |
| tree | 5815c2230d0524045f229c7aaa9d8555827dddb1 /net.c | |
| parent | 48e34522640e25a8186a1e133ac2c74041de3387 (diff) | |
| download | puzzles-051357bb24c0f05c291d6f9e6b460839847923b4.zip puzzles-051357bb24c0f05c291d6f9e6b460839847923b4.tar.gz puzzles-051357bb24c0f05c291d6f9e6b460839847923b4.tar.bz2 puzzles-051357bb24c0f05c291d6f9e6b460839847923b4.tar.xz | |
Last-ditch maximum size limit for Net
This makes sure that width * height <= INT_MAX, which it rather needs
to be.
Diffstat (limited to 'net.c')
| -rw-r--r-- | net.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -7,6 +7,7 @@ #include <string.h> #include <assert.h> #include <ctype.h> +#include <limits.h> #include <math.h> #include "puzzles.h" @@ -313,6 +314,8 @@ static const char *validate_params(const game_params *params, bool full) return "Width and height must both be greater than zero"; if (params->width <= 1 && params->height <= 1) return "At least one of width and height must be greater than one"; + if (params->width > INT_MAX / params->height) + return "Width times height must not be unreasonably large"; if (params->barrier_probability < 0) return "Barrier probability may not be negative"; if (params->barrier_probability > 1) |