ref: fba6fc61eb86bcf43a0e25afb59ce539fbe96c7e
parent: 0eb40587eba25100fcd1eb4f2066c2b0816cd7f7
author: Simon Tatham <anakin@pobox.com>
date: Tue Jun 7 15:07:58 EDT 2005
James Harvey (again) points out an array underrun in the new clash-checking code in Solo. (valgrind confirms it.) [originally from svn r5916]
--- a/solo.c
+++ b/solo.c
@@ -2238,9 +2238,9 @@
/* Mark obvious errors (ie, numbers which occur more than once
* in a single row, column, or box). */
- if ((ds->entered_items[x*cr+d-1] & 2) ||
- (ds->entered_items[y*cr+d-1] & 8) ||
- (ds->entered_items[((x/r)+(y/c)*c)*cr+d-1] & 32))
+ if (d && ((ds->entered_items[x*cr+d-1] & 2) ||
+ (ds->entered_items[y*cr+d-1] & 8) ||
+ (ds->entered_items[((x/r)+(y/c)*c)*cr+d-1] & 32)))
highlight |= 16;
draw_number(fe, ds, state, x, y, highlight);