From 74430f5522e3449584ec0c140a98ed8a188bbff4 Mon Sep 17 00:00:00 2001 From: Markus Uhlin Date: Sat, 5 Apr 2025 19:22:21 +0200 Subject: alg_parse_move: don't check the bounds of 'f' --- FICS/algcheck.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'FICS') diff --git a/FICS/algcheck.c b/FICS/algcheck.c index 4e3d18d..15642fd 100644 --- a/FICS/algcheck.c +++ b/FICS/algcheck.c @@ -253,15 +253,13 @@ alg_parse_move(char *mstr, game_state_t *gs, move_t *mt) */ for (InitPieceLoop(gs->board, &f, &r, gs->onMove); NextPieceLoop(gs->board, &f, &r, gs->onMove);) { - if (f < 0 || f >= 8 || - r < 0 || r >= 8) { + if ((ff != ALG_UNKNOWN) && (ff != f)) + continue; + if (r < 0 || r >= 8) { warnx("%s: out-of-bounds array read/write: " - "f:%d r:%d", __func__, f, r); + "r=%d", __func__, r); return MOVE_AMBIGUOUS; } - - if ((ff != ALG_UNKNOWN) && (ff != f)) - continue; if (piecetype(gs->board[f][r]) != piece) continue; if (gs->onMove == WHITE) { -- cgit v1.2.3