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);