aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Groups/Group.cpp
diff options
context:
space:
mode:
authorSpp <none@none>2010-10-29 14:09:25 +0200
committerSpp <none@none>2010-10-29 14:09:25 +0200
commitc9b6f44e9f2fe05a3a5515494776cdf445ef1dea (patch)
tree81f9ac7f7570ce9409d8cb70e75cb270a44e4239 /src/server/game/Groups/Group.cpp
parent7b35d0b2e8d4617120d2fc56ad2990f38a881f71 (diff)
Core/Groups: Add some checks to prevent a crash with Invites
Core/Groups: Use proper size with SMSG_GROUP_DECLINE Opcode Fixes issue 4412. (Prevents the crash but the main reason of player being null not solved) --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Groups/Group.cpp')
-rwxr-xr-xsrc/server/game/Groups/Group.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index b1caef5c981..1448b88bdfe 100755
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -270,16 +270,19 @@ bool Group::AddLeaderInvite(Player *player)
uint32 Group::RemoveInvite(Player *player)
{
- m_invitees.erase(player);
-
- player->SetGroupInvite(NULL);
+ if (player)
+ {
+ m_invitees.erase(player);
+ player->SetGroupInvite(NULL);
+ }
return GetMembersCount();
}
void Group::RemoveAllInvites()
{
for (InvitesList::iterator itr=m_invitees.begin(); itr != m_invitees.end(); ++itr)
- (*itr)->SetGroupInvite(NULL);
+ if (*itr)
+ (*itr)->SetGroupInvite(NULL);
m_invitees.clear();
}
@@ -288,7 +291,7 @@ Player* Group::GetInvited(const uint64& guid) const
{
for (InvitesList::const_iterator itr = m_invitees.begin(); itr != m_invitees.end(); ++itr)
{
- if ((*itr)->GetGUID() == guid)
+ if ((*itr) && (*itr)->GetGUID() == guid)
return (*itr);
}
return NULL;
@@ -298,7 +301,7 @@ Player* Group::GetInvited(const std::string& name) const
{
for (InvitesList::const_iterator itr = m_invitees.begin(); itr != m_invitees.end(); ++itr)
{
- if ((*itr)->GetName() == name)
+ if ((*itr) && (*itr)->GetName() == name)
return (*itr);
}
return NULL;