diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-07-12 20:24:06 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-07-12 20:24:06 +0000 |
commit | 12ffb909a66401f540234aecbeeee6f94ef2fc6d (patch) | |
tree | 1ef1b7e9a0817148315248542e06fb2be9041dda | |
parent | ea7694a8dbdaa7b77b787add711df1b6e5ace95d (diff) |
Fix for bug #569, thanks dz.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9986 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/hashcomp.cpp | 9 | ||||
-rw-r--r-- | src/modules/m_operlog.cpp | 2 | ||||
-rw-r--r-- | src/modules/m_password_hash.cpp | 5 |
3 files changed, 15 insertions, 1 deletions
diff --git a/src/hashcomp.cpp b/src/hashcomp.cpp index 1bcb538f6..18846737f 100644 --- a/src/hashcomp.cpp +++ b/src/hashcomp.cpp @@ -382,6 +382,9 @@ int irc::modestacker::GetStackedLine(std::deque<std::string> &result, int max_li irc::stringjoiner::stringjoiner(const std::string &seperator, const std::vector<std::string> &sequence, int begin, int end) { + if (end < begin) + throw "stringjoiner logic error, this causes problems."; + for (int v = begin; v < end; v++) joined.append(sequence[v]).append(seperator); joined.append(sequence[end]); @@ -389,6 +392,9 @@ irc::stringjoiner::stringjoiner(const std::string &seperator, const std::vector< irc::stringjoiner::stringjoiner(const std::string &seperator, const std::deque<std::string> &sequence, int begin, int end) { + if (end < begin) + throw "stringjoiner logic error, this causes problems."; + for (int v = begin; v < end; v++) joined.append(sequence[v]).append(seperator); joined.append(sequence[end]); @@ -396,6 +402,9 @@ irc::stringjoiner::stringjoiner(const std::string &seperator, const std::deque<s irc::stringjoiner::stringjoiner(const std::string &seperator, const char* const* sequence, int begin, int end) { + if (end < begin) + throw "stringjoiner logic error, this causes problems."; + for (int v = begin; v < end; v++) joined.append(sequence[v]).append(seperator); joined.append(sequence[end]); diff --git a/src/modules/m_operlog.cpp b/src/modules/m_operlog.cpp index 10e4503f8..d39beb68d 100644 --- a/src/modules/m_operlog.cpp +++ b/src/modules/m_operlog.cpp @@ -47,7 +47,7 @@ class ModuleOperLog : public Module { Command* thiscommand = ServerInstance->Parser->GetHandler(command); if ((thiscommand) && (thiscommand->flags_needed == 'o')) - ServerInstance->Logs->Log("m_operlog",DEFAULT,"OPERLOG: [%s!%s@%s] %s %s",user->nick.c_str(), user->ident.c_str(), user->host.c_str(), command.c_str(), irc::stringjoiner(" ", parameters, 0, parameters.size() - 1).GetJoined().c_str()); + ServerInstance->Logs->Log("m_operlog",DEFAULT,"OPERLOG: [%s!%s@%s] %s %s",user->nick.c_str(), user->ident.c_str(), user->host.c_str(), command.c_str(), parameters.empty() ? "" : irc::stringjoiner(" ", parameters, 0, parameters.size() - 1).GetJoined().c_str()); } return 0; diff --git a/src/modules/m_password_hash.cpp b/src/modules/m_password_hash.cpp index 4d3a9da63..81c2d4cac 100644 --- a/src/modules/m_password_hash.cpp +++ b/src/modules/m_password_hash.cpp @@ -45,6 +45,11 @@ class CommandMkpasswd : public Command /* Now attempt to generate a hash */ user->WriteServ("NOTICE %s :%s hashed password for %s is %s",user->nick.c_str(), algo, stuff, HashSumRequest(Sender, x->second, stuff).Send() ); } + else if (names.empty()) + { + /* same idea as bug #569 */ + user->WriteServ("NOTICE %s :No hash provider modules are loaded", user->nick.c_str()); + } else { /* I dont do flying, bob. */ |