From afe5c7220426a002941b0a4bfb80d22ae08801b4 Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Sun, 22 Apr 2012 10:57:42 +0200 Subject: [PATCH] server crash fix --- common/server_player.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/server_player.cpp b/common/server_player.cpp index fe977bb6..0a6e046c 100644 --- a/common/server_player.cpp +++ b/common/server_player.cpp @@ -331,7 +331,13 @@ ResponseCode Server_Player::moveCard(CommandContainer *cont, Server_CardZone *st 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]->getCardId())) + continue; + cardIdsToMove.insert(_cards[i]->getCardId()); + int position; Server_Card *card = startzone->getCard(_cards[i]->getCardId(), &position); if (!card)