1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-05-17 07:59:36 +00:00
BadFish/src
Marco Costalba 5df7d62eb9 Fix 'position ..... moves ' parsing bug
If after 'moves' there is a space then we crash.

The problem is that operator>>() trims whitespaces so that
after 'moves' has been extract we are still not at eof()
but remaining string contains only spaces. So that the next
extarction operation uip >> token ends up with unchanged token
value that remains 'moves', this garbage value is then feeded
to RootPosition.do_move() through move_from_string() that does
not detect the invalid move value leading to a crash.

This bug is triggered by Shredder 12 interface under Mac that
puts a space after 'moves' without any actual move list.

Bug fixed by Justin Blanchard

After reviewing UCI parsing code I spotted other possible weak
points due to the fact that we don't test if the last extract
operation has been succesful. So I have extended Justing patch
to fix the remaining possible holes in uci.cpp

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
2010-02-01 12:36:30 +01:00
..
application.cpp Clean killers handling in movepicker 2009-08-26 15:38:47 +01:00
application.h Remove unused members in Application class 2009-07-26 16:11:20 +01:00
benchmark.cpp Implemented perft 2009-11-01 17:05:00 +01:00
benchmark.h Update copyright year 2009-05-07 14:54:40 +02:00
bitbase.cpp Update copyright year 2009-05-07 14:54:40 +02:00
bitbase.h Update copyright year 2009-05-07 14:54:40 +02:00
bitboard.cpp Revert small pop_1st_bit() optimization 2009-12-27 14:07:08 +01:00
bitboard.h Logaritmic futility margins 2009-11-23 20:59:24 +01:00
bitcount.h Enable POPCNT only through Makefile 2009-11-06 17:50:24 +01:00
book.cpp Simplify move legality check for uncommon cases 2009-09-22 07:07:18 +01:00
book.h Update copyright year 2009-05-07 14:54:40 +02:00
color.h Use string instead of std::string 2009-05-10 18:38:47 +01:00
COPYING Initial import of Glaurung 2.1 2008-09-01 07:59:13 +02:00
depth.h Directly relate HistoryMax to OnePly 2009-05-20 14:43:17 +02:00
direction.cpp Space inflate and cleanup direction.cpp 2009-05-20 12:02:39 +02:00
direction.h Update copyright year 2009-05-07 14:54:40 +02:00
endgame.cpp Rename piece_attacks_from() in attacks_from() 2009-09-20 14:55:28 +01:00
endgame.h Better naming and document some endgame functions 2009-08-14 08:19:55 +01:00
evaluate.cpp Use THREAD_MAX instead of hardcoded 8 2009-12-27 13:52:29 +01:00
evaluate.h Convert mobility bonus tables to Score 2009-11-07 15:28:02 +01:00
history.cpp Remove history counters 2009-12-12 19:23:10 +01:00
history.h Fix a comment in HistoryMax description 2009-12-19 10:43:12 +01:00
lock.h Use WIN32_LEAN_AND_MEAN in lock.h 2009-09-17 14:18:44 +01:00
main.cpp Implemented perft 2009-11-01 17:05:00 +01:00
Makefile Better fix for gcc optimization issue 2009-12-30 13:25:02 +01:00
material.cpp Micro-optimize get_material_info() 2009-11-15 09:35:22 +01:00
material.h Move game phase computation to MaterialInfo 2009-11-14 17:57:49 +01:00
mersenne.cpp Warnings termination fest 2008-09-24 00:32:53 +02:00
mersenne.h Update copyright year 2009-05-07 14:54:40 +02:00
misc.cpp Stockfish 1.6.2 2009-12-30 13:25:20 +01:00
misc.h Use string instead of std::string 2009-05-10 18:38:47 +01:00
move.cpp Micro optimize and rename move_promotion() 2009-06-20 09:04:32 +01:00
move.h Speed up sorting of non-captures 2009-11-25 17:42:41 +01:00
movegen.cpp Small code-style touches in movegen.cpp 2009-11-06 14:42:48 +01:00
movegen.h Retire MovePicker::discovered_check_candidates() 2009-11-05 07:03:48 +01:00
movepick.cpp Define Score as an enum 2009-11-09 08:43:34 +01:00
movepick.h Retire MovePicker::discovered_check_candidates() 2009-11-05 07:03:48 +01:00
pawns.cpp Convert pawns evaluation to Score 2009-11-14 17:57:50 +01:00
pawns.h Convert pawns evaluation to Score 2009-11-14 17:57:50 +01:00
piece.cpp Update copyright year 2009-05-07 14:54:40 +02:00
piece.h Retire piece_is_slider(PieceType pt) 2009-09-04 08:21:07 +01:00
position.cpp Fix en-passant parsing from fen string 2010-02-01 12:36:06 +01:00
position.h Document and cleanup new effective-single-reply code 2009-11-23 21:12:49 +01:00
psqtab.h Joona tweaks of piece values 2009-07-02 06:29:14 +01:00
san.cpp Rewrite generate_pawn_moves() and simplify evasions 2009-11-05 07:03:47 +01:00
san.h Display fail high/fail low in search log file. 2009-10-06 12:51:15 +02:00
scale.h Update copyright year 2009-05-07 14:54:40 +02:00
search.cpp Fix a possible crash in thread_is_available() 2010-02-01 12:34:31 +01:00
search.h Implemented perft 2009-11-01 17:05:00 +01:00
square.h Update copyright year 2009-05-07 14:54:40 +02:00
thread.h Fix a possible crash in thread_is_available() 2010-02-01 12:34:31 +01:00
tt.cpp Extend maximum hash size to 8 GB 2010-02-01 12:14:37 +01:00
tt.h Extend maximum hash size to 8 GB 2010-02-01 12:14:37 +01:00
types.h Fix correct name of int64_t type 2009-11-07 10:08:28 +01:00
uci.cpp Fix 'position ..... moves ' parsing bug 2010-02-01 12:36:30 +01:00
uci.h Update copyright year 2009-05-07 14:54:40 +02:00
ucioption.cpp Extend maximum hash size to 8 GB 2010-02-01 12:14:37 +01:00
ucioption.h Use string instead of std::string 2009-05-10 18:38:47 +01:00
value.cpp Update copyright year 2009-05-07 14:54:40 +02:00
value.h Better fix for gcc optimization issue 2009-12-30 13:25:02 +01:00