mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43: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:
parent
ad1f28bc1c
commit
b8eb699db7
2 changed files with 5 additions and 2 deletions
|
@ -777,6 +777,8 @@ bool Position::move_gives_check(Move m, const CheckInfo& ci) const {
|
|||
|
||||
void Position::do_setup_move(Move m) {
|
||||
|
||||
assert(move_is_ok(m));
|
||||
|
||||
StateInfo newSt;
|
||||
|
||||
// Update the number of full moves after black's move
|
||||
|
|
|
@ -120,6 +120,7 @@ namespace {
|
|||
|
||||
void set_position(Position& pos, UCIParser& up) {
|
||||
|
||||
Move m;
|
||||
string token, fen;
|
||||
|
||||
up >> token; // operator>>() skips any whitespace
|
||||
|
@ -139,8 +140,8 @@ namespace {
|
|||
else return;
|
||||
|
||||
// Parse move list (if any)
|
||||
while (up >> token)
|
||||
pos.do_setup_move(move_from_uci(pos, token));
|
||||
while (up >> token && (m = move_from_uci(pos, token)) != MOVE_NONE)
|
||||
pos.do_setup_move(m);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue