diff --git a/common/server_player.cpp b/common/server_player.cpp index d00a25bf..3fa79997 100644 --- a/common/server_player.cpp +++ b/common/server_player.cpp @@ -350,7 +350,13 @@ Response::ResponseCode Server_Player::moveCard(GameEventStorage &ges, Server_Car QList > cardsToMove; QMap cardProperties; + QSet cardIdsToMove; for (int i = 0; i < _cards.size(); ++i) { + // The same card being moved twice would lead to undefined behaviour. + if (cardIdsToMove.contains(_cards[i]->card_id())) + continue; + cardIdsToMove.insert(_cards[i]->card_id()); + int position; Server_Card *card = startzone->getCard(_cards[i]->card_id(), &position); if (!card)