diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-08-28 20:30:25 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-08-28 20:30:25 +0000 |
commit | da063380e6437178ee3ea99ead971fa384b93a5e (patch) | |
tree | 73b1f4ce758058672661fc9775c3fe3ac678a07b /src/modules | |
parent | 8bedfebc177332f3e6af878ed9d95131a2447c55 (diff) |
Stop a potential null pointer dereference introduced by Namegduf's patch, found by Dessa/Kuja for finding this, and to danieldg, Special, Namegduf and psychon for their input.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11545 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_alias.cpp | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp index f9a144c3b..1741bb10d 100644 --- a/src/modules/m_alias.cpp +++ b/src/modules/m_alias.cpp @@ -181,21 +181,18 @@ class ModuleAlias : public Module { if (target_type != TYPE_CHANNEL) { - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: not a channel msg"); return; } // fcommands are only for local users. Spanningtree will send them back out as their original cmd. - if (!IS_LOCAL(user)) + if (!user || !IS_LOCAL(user)) { - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: not local"); return; } /* Stop here if the user is +B and allowbot is set to no. */ if (!AllowBots && user->IsModeSet('B')) { - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: user is +B and allowbot is set to no"); return; } @@ -208,24 +205,18 @@ class ModuleAlias : public Module if (fcommand.empty()) { - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: empty (?)"); return; // wtfbbq } - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: looking at fcommand %s", fcommand.c_str()); - // we don't want to touch non-fantasy stuff if (*fcommand.c_str() != fprefix) { - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: not a fcommand"); return; } // nor do we give a shit about the prefix fcommand.erase(fcommand.begin()); std::transform(fcommand.begin(), fcommand.end(), fcommand.begin(), ::toupper); - ServerInstance->Logs->Log("FANTASY", DEBUG, "fantasy: now got %s", fcommand.c_str()); - std::multimap<std::string, Alias>::iterator i = Aliases.find(fcommand); |