From 12ffb909a66401f540234aecbeeee6f94ef2fc6d Mon Sep 17 00:00:00 2001 From: w00t Date: Sat, 12 Jul 2008 20:24:06 +0000 Subject: [PATCH] Fix for bug #569, thanks dz. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9986 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/hashcomp.cpp | 9 +++++++++ src/modules/m_operlog.cpp | 2 +- src/modules/m_password_hash.cpp | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) 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 &result, int max_li irc::stringjoiner::stringjoiner(const std::string &seperator, const std::vector &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 &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::dequeParser->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. */ -- 2.39.2