1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

Validate input UCI moves

Running following command:

  position startpos moves e1e8

Makes SF to assert in debug mode in do_move() but to accept
bad input and continue in release mode where probably it is
going to crash little later.

So validate input before to feed do_move().

Suggestion by Yakovlev Vadim.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2011-07-17 10:22:08 +01:00
parent ad1f28bc1c
commit b8eb699db7
2 changed files with 5 additions and 2 deletions

View file

@ -777,6 +777,8 @@ bool Position::move_gives_check(Move m, const CheckInfo& ci) const {
void Position::do_setup_move(Move m) { void Position::do_setup_move(Move m) {
assert(move_is_ok(m));
StateInfo newSt; StateInfo newSt;
// Update the number of full moves after black's move // Update the number of full moves after black's move

View file

@ -120,6 +120,7 @@ namespace {
void set_position(Position& pos, UCIParser& up) { void set_position(Position& pos, UCIParser& up) {
Move m;
string token, fen; string token, fen;
up >> token; // operator>>() skips any whitespace up >> token; // operator>>() skips any whitespace
@ -139,8 +140,8 @@ namespace {
else return; else return;
// Parse move list (if any) // Parse move list (if any)
while (up >> token) while (up >> token && (m = move_from_uci(pos, token)) != MOVE_NONE)
pos.do_setup_move(move_from_uci(pos, token)); pos.do_setup_move(m);
} }