Fix array bounds violation in the solver. Oops.

[originally from svn r6225]
This commit is contained in:
Simon Tatham
2005-08-27 09:53:38 +00:00
parent 8c547d5320
commit 389397eed6

View File

@ -370,7 +370,9 @@ static int find_gem_candidates(int w, int h, char *grid,
d2 = n; d2 = n;
} }
i2 = (y2*w+x2)*DIRECTIONS+d2; i2 = (y2*w+x2)*DIRECTIONS+d2;
if (!reachable[i2]) { if (x2 >= 0 && x2 < w &&
y2 >= 0 && y2 < h &&
!reachable[i2]) {
int ok; int ok;
#ifdef SOLVER_DIAGNOSTICS #ifdef SOLVER_DIAGNOSTICS
printf(" trying point %d,%d,%d", x2, y2, d2); printf(" trying point %d,%d,%d", x2, y2, d2);