summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2009-08-28 20:30:25 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2009-08-28 20:30:25 +0000
commitda063380e6437178ee3ea99ead971fa384b93a5e (patch)
tree73b1f4ce758058672661fc9775c3fe3ac678a07b
parent8bedfebc177332f3e6af878ed9d95131a2447c55 (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
-rw-r--r--src/modules/m_alias.cpp11
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);