From 389397eed6bf162f1e13b9c733bfa2cf88c2ba83 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sat, 27 Aug 2005 09:53:38 +0000 Subject: [PATCH] Fix array bounds violation in the solver. Oops. [originally from svn r6225] --- inertia.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/inertia.c b/inertia.c index a158363..fc213da 100644 --- a/inertia.c +++ b/inertia.c @@ -370,7 +370,9 @@ static int find_gem_candidates(int w, int h, char *grid, d2 = n; } i2 = (y2*w+x2)*DIRECTIONS+d2; - if (!reachable[i2]) { + if (x2 >= 0 && x2 < w && + y2 >= 0 && y2 < h && + !reachable[i2]) { int ok; #ifdef SOLVER_DIAGNOSTICS printf(" trying point %d,%d,%d", x2, y2, d2); -- 2.30.2