diff options
| author | Dehravor <dehravor@gmail.com> | 2014-01-18 10:30:39 +0100 | 
|---|---|---|
| committer | Dehravor <dehravor@gmail.com> | 2014-01-18 10:30:39 +0100 | 
| commit | 51e38872c72e16bb0f09e660c2660759021b2176 (patch) | |
| tree | 763fceb08855a2b654d3653104e9dd7207557e4c /src/server/game/Handlers/CalendarHandler.cpp | |
| parent | bbd84d211de5ae19bdc6c8abe19064b1b926003b (diff) | |
Core/Calendar: Fix memory leak when malformed CMSG_CALENDAR_ADD_EVENT is received
Diffstat (limited to 'src/server/game/Handlers/CalendarHandler.cpp')
| -rw-r--r-- | src/server/game/Handlers/CalendarHandler.cpp | 18 | 
1 files changed, 9 insertions, 9 deletions
| diff --git a/src/server/game/Handlers/CalendarHandler.cpp b/src/server/game/Handlers/CalendarHandler.cpp index fba575ee84e..7f3989e54d1 100644 --- a/src/server/game/Handlers/CalendarHandler.cpp +++ b/src/server/game/Handlers/CalendarHandler.cpp @@ -235,18 +235,18 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recvData)      recvData.ReadPackedTime(unkPackedTime);      recvData >> flags; -    CalendarEvent* calendarEvent = new CalendarEvent(sCalendarMgr->GetFreeEventId(), guid, 0, CalendarEventType(type), dungeonId, +    CalendarEvent calendarEvent(sCalendarMgr->GetFreeEventId(), guid, 0, CalendarEventType(type), dungeonId,          time_t(eventPackedTime), flags, time_t(unkPackedTime), title, description); -    if (calendarEvent->IsGuildEvent() || calendarEvent->IsGuildAnnouncement()) +    if (calendarEvent.IsGuildEvent() || calendarEvent.IsGuildAnnouncement())          if (Player* creator = ObjectAccessor::FindPlayer(guid)) -            calendarEvent->SetGuildId(creator->GetGuildId()); +            calendarEvent.SetGuildId(creator->GetGuildId()); -    if (calendarEvent->IsGuildAnnouncement()) +    if (calendarEvent.IsGuildAnnouncement())      {          // 946684800 is 01/01/2000 00:00:00 - default response time -        CalendarInvite* invite = new CalendarInvite(0, calendarEvent->GetEventId(), 0, guid, 946684800, CALENDAR_STATUS_NOT_SIGNED_UP, CALENDAR_RANK_PLAYER, ""); -        sCalendarMgr->AddInvite(calendarEvent, invite); +        CalendarInvite* invite = new CalendarInvite(0, calendarEvent.GetEventId(), 0, guid, 946684800, CALENDAR_STATUS_NOT_SIGNED_UP, CALENDAR_RANK_PLAYER, ""); +        sCalendarMgr->AddInvite(&calendarEvent, invite);      }      else      { @@ -262,12 +262,12 @@ void WorldSession::HandleCalendarAddEvent(WorldPacket& recvData)              recvData >> status >> rank;              // 946684800 is 01/01/2000 00:00:00 - default response time -            CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent->GetEventId(), invitee, guid, 946684800, CalendarInviteStatus(status), CalendarModerationRank(rank), ""); -            sCalendarMgr->AddInvite(calendarEvent, invite); +            CalendarInvite* invite = new CalendarInvite(sCalendarMgr->GetFreeInviteId(), calendarEvent.GetEventId(), invitee, guid, 946684800, CalendarInviteStatus(status), CalendarModerationRank(rank), ""); +            sCalendarMgr->AddInvite(&calendarEvent, invite);          }      } -    sCalendarMgr->AddEvent(calendarEvent, CALENDAR_SENDTYPE_ADD); +    sCalendarMgr->AddEvent(new CalendarEvent(calendarEvent, calendarEvent.GetEventId()), CALENDAR_SENDTYPE_ADD);  }  void WorldSession::HandleCalendarUpdateEvent(WorldPacket& recvData) | 
