]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Merge pull request #934 from SaberUK/insp20+fix-various-issues
authorAttila Molnar <attilamolnar@hush.com>
Mon, 13 Oct 2014 18:37:38 +0000 (20:37 +0200)
committerAttila Molnar <attilamolnar@hush.com>
Mon, 13 Oct 2014 18:37:38 +0000 (20:37 +0200)
Fix various issues detected by Coverity.

src/modules/m_watch.cpp
src/users.cpp

index be05d7d2d7e2c2154c51ae4abeaf2073b38b54bc..074ce37adcb2bfbdbf533b37fd3baf123d0734e4 100644 (file)
@@ -163,9 +163,6 @@ class CommandWatch : public Command
                        /* Yup, is on my list */
                        watchlist::iterator n = wl->find(nick);
 
-                       if (!wl)
-                               return CMD_FAILURE;
-
                        if (n != wl->end())
                        {
                                if (!n->second.empty())
index 91db5200a98b3b9fefa8db5cb0df5dd782942ec0..418f2c9aa3557f187e45eb189c892a07b154970c 100644 (file)
@@ -1321,26 +1321,19 @@ void User::SendText(const char *text, ...)
 
 void User::SendText(const std::string &LinePrefix, std::stringstream &TextStream)
 {
-       char line[MAXBUF];
-       int start_pos = LinePrefix.length();
-       int pos = start_pos;
-       memcpy(line, LinePrefix.data(), pos);
+       std::string line;
        std::string Word;
        while (TextStream >> Word)
        {
-               int len = Word.length();
-               if (pos + len + 12 > MAXBUF)
+               size_t lineLength = LinePrefix.length() + line.length() + Word.length() + 13;
+               if (lineLength > MAXBUF)
                {
-                       line[pos] = '\0';
-                       SendText(std::string(line));
-                       pos = start_pos;
+                       SendText(LinePrefix + line);
+                       line.clear();
                }
-               line[pos] = ' ';
-               memcpy(line + pos + 1, Word.data(), len);
-               pos += len + 1;
+               line += " " + Word;
        }
-       line[pos] = '\0';
-       SendText(std::string(line));
+       SendText(LinePrefix + line);
 }
 
 /* return 0 or 1 depending if users u and u2 share one or more common channels