aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2016-08-01 18:55:47 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2017-02-11 21:37:40 +0100
commitaf11f48356475a516c0cc0b6ca972c64e8dab93b (patch)
treec261e537789a28db946591db1e47c3d738a2e3fc
parent6326bf20f5c39565b8e36e9f0f767a58ba5b6b61 (diff)
Core/Group: Do not allow a player to invite himself
Do not allow a player to invite himself in group. Fix an edge case when inviting another player that would cause a crash. Fix #17664 (cherry picked from commit bcfa47c0514b51690a5dd222b3b1ac5f20379232)
-rw-r--r--src/server/game/Handlers/GroupHandler.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp
index 6cc162eff89..cf803ed2d88 100644
--- a/src/server/game/Handlers/GroupHandler.cpp
+++ b/src/server/game/Handlers/GroupHandler.cpp
@@ -69,6 +69,13 @@ void WorldSession::HandlePartyInviteOpcode(WorldPackets::Party::PartyInviteClien
return;
}
+ // player trying to invite himself (most likely cheating)
+ if (player == GetPlayer())
+ {
+ SendPartyResult(PARTY_OP_INVITE, player->GetName(), ERR_BAD_PLAYER_NAME_S);
+ return;
+ }
+
// restrict invite to GMs
if (!sWorld->getBoolConfig(CONFIG_ALLOW_GM_GROUP) && !GetPlayer()->IsGameMaster() && player->IsGameMaster())
{
@@ -160,6 +167,7 @@ void WorldSession::HandlePartyInviteOpcode(WorldPackets::Party::PartyInviteClien
}
if (!group->AddInvite(player))
{
+ group->RemoveAllInvites();
delete group;
return;
}