shithub: puzzles

Download patch

ref: 389397eed6bf162f1e13b9c733bfa2cf88c2ba83
parent: 8c547d5320864bca867ab8008e9e2dd4a4a4bc6b
author: Simon Tatham <anakin@pobox.com>
date: Sat Aug 27 05:53:38 EDT 2005

Fix array bounds violation in the solver. Oops.

[originally from svn r6225]

--- a/inertia.c
+++ b/inertia.c
@@ -370,7 +370,9 @@
 		    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);