aboutsummaryrefslogtreecommitdiff
path: root/loopy.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2009-07-01 22:01:21 +0000
committerSimon Tatham <anakin@pobox.com>2009-07-01 22:01:21 +0000
commitcfdba00313386042c38460def6fe141b252858fe (patch)
tree28e6a53dd57a145cd175bb6d0697c7459d15a5cb /loopy.c
parent652f03a8aefa3267bd0acad64eadcdcd23cdf507 (diff)
downloadpuzzles-cfdba00313386042c38460def6fe141b252858fe.zip
puzzles-cfdba00313386042c38460def6fe141b252858fe.tar.gz
puzzles-cfdba00313386042c38460def6fe141b252858fe.tar.bz2
puzzles-cfdba00313386042c38460def6fe141b252858fe.tar.xz
More defensive-coding fixes from James H.
[originally from svn r8605]
Diffstat (limited to 'loopy.c')
-rw-r--r--loopy.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/loopy.c b/loopy.c
index 242e983..de4d6a4 100644
--- a/loopy.c
+++ b/loopy.c
@@ -1513,6 +1513,7 @@ static void add_full_clues(game_state *state, random_state *rs)
face_scores = snewn(num_faces, struct face_score);
for (i = 0; i < num_faces; i++) {
face_scores[i].random = random_bits(rs, 31);
+ face_scores[i].black_score = face_scores[i].white_score = 0;
}
/* Colour a random, finite face white. The infinite face is implicitly
@@ -3232,6 +3233,8 @@ static game_state *execute_move(game_state *state, char *move)
while (*move) {
i = atoi(move);
+ if (i < 0 || i >= newstate->game_grid->num_edges)
+ goto fail;
move += strspn(move, "1234567890");
switch (*(move++)) {
case 'y':