summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hashcomp.cpp9
-rw-r--r--src/modules/m_operlog.cpp2
-rw-r--r--src/modules/m_password_hash.cpp5
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. */