aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Harris <bjh21@bjh21.me.uk>2023-01-08 10:03:10 +0000
committerBen Harris <bjh21@bjh21.me.uk>2023-01-15 16:24:27 +0000
commitc2eedeedfe3c48f3f013fb1308f61d7ef94e8b2c (patch)
tree4ab322cd076a3a62b5257c3face19c9526cbb167
parentd5b8a20def7634d4df79800fe54d8e34c6353974 (diff)
downloadpuzzles-c2eedeedfe3c48f3f013fb1308f61d7ef94e8b2c.zip
puzzles-c2eedeedfe3c48f3f013fb1308f61d7ef94e8b2c.tar.gz
puzzles-c2eedeedfe3c48f3f013fb1308f61d7ef94e8b2c.tar.bz2
puzzles-c2eedeedfe3c48f3f013fb1308f61d7ef94e8b2c.tar.xz
Black Box: correct order of validation checks for "F" commands
It doesn't do much good to range-check an argument after using it as an array index.
-rw-r--r--blackbox.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/blackbox.c b/blackbox.c
index 7918c53..c93678a 100644
--- a/blackbox.c
+++ b/blackbox.c
@@ -1067,10 +1067,10 @@ static game_state *execute_move(const game_state *from, const char *move)
case 'F':
sscanf(move+1, "%d", &rangeno);
- if (ret->exits[rangeno] != LASER_EMPTY)
- goto badmove;
if (!RANGECHECK(ret, rangeno))
goto badmove;
+ if (ret->exits[rangeno] != LASER_EMPTY)
+ goto badmove;
fire_laser(ret, rangeno);
break;