diff options
| author | Simon Tatham <anakin@pobox.com> | 2009-07-01 22:01:21 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2009-07-01 22:01:21 +0000 |
| commit | cfdba00313386042c38460def6fe141b252858fe (patch) | |
| tree | 28e6a53dd57a145cd175bb6d0697c7459d15a5cb /loopy.c | |
| parent | 652f03a8aefa3267bd0acad64eadcdcd23cdf507 (diff) | |
| download | puzzles-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.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -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': |