From 4ed3254aa84a24d92df378e48b1e0d2d9affd01d Mon Sep 17 00:00:00 2001 From: jackpoz Date: Mon, 29 Sep 2014 20:12:03 +0200 Subject: Core/Scripts: Fix invalid memory write Fix invalid memory write caused by calling "delete this;" in a base class constructor. --- src/server/game/Scripting/ScriptMgr.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/server/game/Scripting/ScriptMgr.cpp') diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index a98778e38fa..be0bf1aa067 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -104,7 +104,10 @@ class ScriptRegistry // The script uses a script name from database, but isn't assigned to anything. TC_LOG_ERROR("sql.sql", "Script named '%s' does not have a script name assigned in database.", script->GetName().c_str()); - delete script; + // Avoid calling "delete script;" because we are currently in the script constructor + // In a valid scenario this will not happen because every script has a name assigned in the database + // If that happens, it's acceptable to just leak a few bytes + return; } } -- cgit v1.2.3