From daecbd67e84c03b337d361b3446c09e634c69737 Mon Sep 17 00:00:00 2001 From: Shauren Date: Thu, 31 Jul 2014 20:28:32 +0200 Subject: Core/Waypoints: Fixed memory leaks happening when loading waypoints with invalid move_type --- src/server/game/Movement/Waypoints/WaypointManager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/server/game/Movement/Waypoints') diff --git a/src/server/game/Movement/Waypoints/WaypointManager.cpp b/src/server/game/Movement/Waypoints/WaypointManager.cpp index 2820c5dee17..21af63868db 100644 --- a/src/server/game/Movement/Waypoints/WaypointManager.cpp +++ b/src/server/game/Movement/Waypoints/WaypointManager.cpp @@ -78,6 +78,7 @@ void WaypointMgr::Load() if (wp->move_type >= WAYPOINT_MOVE_TYPE_MAX) { TC_LOG_ERROR("sql.sql", "Waypoint %u in waypoint_data has invalid move_type, ignoring", wp->id); + delete wp; continue; } @@ -134,13 +135,14 @@ void WaypointMgr::ReloadPath(uint32 id) wp->z = z; wp->orientation = o; wp->move_type = fields[5].GetUInt32(); - + if (wp->move_type >= WAYPOINT_MOVE_TYPE_MAX) { TC_LOG_ERROR("sql.sql", "Waypoint %u in waypoint_data has invalid move_type, ignoring", wp->id); + delete wp; continue; } - + wp->delay = fields[6].GetUInt32(); wp->event_id = fields[7].GetUInt32(); wp->event_chance = fields[8].GetUInt8(); -- cgit v1.2.3