aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSpp <none@none>2010-08-18 22:32:11 +0200
committerSpp <none@none>2010-08-18 22:32:11 +0200
commiteebb36ba5801535b2c5705ade019812b63cfd0d7 (patch)
treef8b51f3830d2c645afea608e9d076aab0075326f /src
parentd47b9851cd92404828b4e85641690520bdbd8751 (diff)
Dungeon Finder: Fix a possible crash in UpdateProposal
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 0749a320d05..01c8d6fe8fe 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -1074,9 +1074,10 @@ void LFGMgr::UpdateProposal(uint32 proposalId, uint32 lowGuid, uint8 accept)
LfgProposal *pProposal = itProposal->second;
// Check if proposal have the current player
- LfgProposalPlayer *ppPlayer = pProposal->players[lowGuid];
- if (!ppPlayer)
+ LfgProposalPlayerMap::iterator itProposalPlayer = pProposal->players.find(lowGuid);
+ if (itProposalPlayer == pProposal->players.end())
return;
+ LfgProposalPlayer *ppPlayer = itProposalPlayer->second;
ppPlayer->accept = accept;
if (!accept)
@@ -1094,10 +1095,13 @@ void LFGMgr::UpdateProposal(uint32 proposalId, uint32 lowGuid, uint8 accept)
{
plr = sObjectMgr.GetPlayer(itPlayers->first);
- if (plr && itPlayers->first == pProposal->leaderLowGuid)
- players.push_front(plr);
- else
- players.push_back(plr);
+ if (plr)
+ {
+ if (itPlayers->first == pProposal->leaderLowGuid)
+ players.push_front(plr);
+ else
+ players.push_back(plr);
+ }
if (itPlayers->second->accept < 1) // No answer (-1) or not accepted (0)
allAnswered = false;