Fix core crash
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 8 Sep 2011 18:33:12 +0000 (20:33 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 8 Sep 2011 18:33:12 +0000 (20:33 +0200)
Some CTCP requests could make the core crash; this fixes it.

src/core/ctcphandler.cpp

index 5853ff8..f67735f 100644 (file)
@@ -198,13 +198,10 @@ void CtcpHandler::packedReply(const QString &bufname, const QList<QByteArray> &r
     answerSize += replies.at(i).size();
   }
 
     answerSize += replies.at(i).size();
   }
 
-  QByteArray quotedReply(answerSize, 0);
-  int nextPos = 0;
-  QByteArray &reply = quotedReply;
+  QByteArray quotedReply;
+  quotedReply.reserve(answerSize);
   for(int i = 0; i < replies.count(); i++) {
   for(int i = 0; i < replies.count(); i++) {
-    reply = replies.at(i);
-    quotedReply.replace(nextPos, reply.size(), reply);
-    nextPos += reply.size();
+    quotedReply.append(replies.at(i));
   }
 
   params << serverEncode(bufname) << quotedReply;
   }
 
   params << serverEncode(bufname) << quotedReply;