diff options
author | jackpoz <giacomopoz@gmail.com> | 2014-09-29 20:12:03 +0200 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2014-09-29 20:12:03 +0200 |
commit | 4ed3254aa84a24d92df378e48b1e0d2d9affd01d (patch) | |
tree | a23a7c7ca83202e8cdf16da4cba16161b1a63dc8 /src/server/game/Scripting/ScriptMgr.cpp | |
parent | c34af1d60bba8d45a78863339cd5a240da5b5d5e (diff) |
Core/Scripts: Fix invalid memory write
Fix invalid memory write caused by calling "delete this;" in a base class constructor.
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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; } } |