diff options
author | Machiavelli <none@none> | 2009-01-01 02:49:38 +0100 |
---|---|---|
committer | Machiavelli <none@none> | 2009-01-01 02:49:38 +0100 |
commit | 87a9ba3f4e684218bc66e3d448e06ebfec4113a4 (patch) | |
tree | 799291cc344f305b5a62cc5ab286a0258fb070de /src/game/TicketHandler.cpp | |
parent | d968a0457bbaaa277356c05e90f83b88f2d30da9 (diff) |
* Crash Fix for ticket system on closing a ticket (pointer was deleted out of object holder), thanks Visagalis
--HG--
branch : trunk
Diffstat (limited to 'src/game/TicketHandler.cpp')
-rw-r--r-- | src/game/TicketHandler.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/game/TicketHandler.cpp b/src/game/TicketHandler.cpp index 2a0fa4760b6..ab00aa5f7f6 100644 --- a/src/game/TicketHandler.cpp +++ b/src/game/TicketHandler.cpp @@ -128,16 +128,20 @@ void WorldSession::HandleGMTicketDeleteOpcode( WorldPacket & /*recv_data*/) GM_Ticket* ticket = ticketmgr.GetGMTicketByPlayer(GetPlayer()->GetGUID()); - // Remove Tickets from Player - ticketmgr.RemoveGMTicketByPlayer(GetPlayer()->GetGUID()); - - // Response - no errors - WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4); - data << uint32(9); - // Send Packet - SendPacket(&data); + // CHeck for Ticket + if(ticket) + { + // Remove Tickets from Player + + // Response - no errors + WorldPacket data(SMSG_GMTICKET_DELETETICKET, 4); + data << uint32(9); + // Send Packet + SendPacket(&data); - sWorld.SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid ); + sWorld.SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName(), ticket->guid ); + ticketmgr.RemoveGMTicketByPlayer(GetPlayer()->GetGUID()); + } } void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/) @@ -164,7 +168,6 @@ void WorldSession::HandleGMTicketGetTicketOpcode( WorldPacket & /*recv_data*/) SendPacket(&data); - } void WorldSession::HandleGMTicketSystemStatusOpcode( WorldPacket & /*recv_data*/) |