In msg_server_play_move.go, the following logic is wrong:
// Is it an expected player?
var player rules.Player
if strings.Compare(storedGame.Red, msg.Creator) == 0 {
player = rules.RED_PLAYER
} else if strings.Compare(storedGame.Black, msg.Creator) == 0 {
player = rules.BLACK_PLAYER
} else {
return nil, types.ErrCreatorNotPlayer
}
In the edge case whereby the black and red players have the same address, this piece of code always identifies the caller as red.
In
msg_server_play_move.go
, the following logic is wrong:In the edge case whereby the black and red players have the same address, this piece of code always identifies the caller as red.