aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
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/Server
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/Server')
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/GroupHandler.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp b/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp
index 1817953bd2c..9946bc60538 100755
--- a/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/GroupHandler.cpp
@@ -236,18 +236,18 @@ void WorldSession::HandleGroupDeclineOpcode(WorldPacket & /*recv_data*/)
Group *group = GetPlayer()->GetGroupInvite();
if (!group) return;
- // remember leader if online
- Player *leader = sObjectMgr.GetPlayer(group->GetLeaderGUID());
-
// uninvite, group can be deleted
GetPlayer()->UninviteFromGroup();
+ // remember leader if online
+ Player *leader = sObjectMgr.GetPlayer(group->GetLeaderGUID());
if (!leader || !leader->GetSession())
return;
// report
- WorldPacket data(SMSG_GROUP_DECLINE, 10); // guess size
- data << GetPlayer()->GetName();
+ std::string name = std::string(GetPlayer()->GetName());
+ WorldPacket data(SMSG_GROUP_DECLINE, name.length());
+ data << name.c_str();
leader->GetSession()->SendPacket(&data);
}