fairy-stockfish / Fairy-Stockfish

chess variant engine supporting Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse, and many more
https://fairy-stockfish.github.io/
GNU General Public License v3.0
607 stars 189 forks source link

Fairy doesn't check if promoted pieces actually exist in a variant when validating FENs. #416

Open kezsulap opened 2 years ago

kezsulap commented 2 years ago

Example FENs considered valid Shinobi: rnb+qkbnr/pppppppp/8/8/8/8/PPPPPPPP/LH1CK1HL[LHMMDJ] w kq - 0 1 Chennis: 1f+km3/1p1s3/7/7/7/3S1P1/3M1F1[] w - - 1 1 Kyotoshogi: p+nks+l/5/5/5/+LS+K+NP[-] w 0 1

kezsulap commented 2 years ago

Happens also in variants with no piece promotion at all Standard chess: rn+bqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 is also considered valid

ianfab commented 2 years ago

For reference, https://github.com/ianfab/Fairy-Stockfish/blob/9022a70549bf741db2fe4b57af42739b1cb91a2d/src/apiutil.h#L470-L480 is the relevant code.