We could fail to parse an en-passant position
in same cases.
Merged from iPhone Glaurung.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
i++;
// En passant square
i++;
// En passant square
- if ( i < fen.length() - 2
+ if ( i <= fen.length() - 2
&& (fen[i] >= 'a' && fen[i] <= 'h')
&& (fen[i+1] == '3' || fen[i+1] == '6'))
st->epSquare = square_from_string(fen.substr(i, 2));
&& (fen[i] >= 'a' && fen[i] <= 'h')
&& (fen[i+1] == '3' || fen[i+1] == '6'))
st->epSquare = square_from_string(fen.substr(i, 2));