From d43df4abb53a5ea90fa8e7bc939bdcfb6fc141c3 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Wed, 2 Apr 2008 19:21:53 +0000 Subject: [PATCH] this should keep the core from going berserk (which was gladly very rare...) --- src/core/ctcphandler.cpp | 12 ++++++++---- version.inc | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/core/ctcphandler.cpp b/src/core/ctcphandler.cpp index 84930880..23753ccb 100644 --- a/src/core/ctcphandler.cpp +++ b/src/core/ctcphandler.cpp @@ -107,9 +107,14 @@ void CtcpHandler::parse(Message::Type messageType, const QString &prefix, const displayMsg(messageType, target, userDecode(target, dequotedMessage.left(xdelimPos)), prefix, flags); xdelimEndPos = dequotedMessage.indexOf(XDELIM, xdelimPos + 1); - - ctcp = xdelimDequote(dequotedMessage.mid(xdelimPos + 1, xdelimEndPos - xdelimPos - 1)); - dequotedMessage = dequotedMessage.mid(xdelimEndPos + 1); + if(xdelimEndPos == -1) { + // no matching end delimiter found... + dequotedMessage = dequotedMessage.mid(xdelimPos + 1); + break; + } else { + ctcp = xdelimDequote(dequotedMessage.mid(xdelimPos + 1, xdelimEndPos - xdelimPos - 1)); + dequotedMessage = dequotedMessage.mid(xdelimEndPos + 1); + } //dispatch the ctcp command QString ctcpcmd = userDecode(target, ctcp.left(spacePos)); @@ -172,7 +177,6 @@ void CtcpHandler::handlePing(CtcpType ctcptype, const QString &prefix, const QSt void CtcpHandler::handleVersion(CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m) { Q_UNUSED(target) if(ctcptype == CtcpQuery) { - // FIXME use real Info about quassel :) reply(nickFromMask(prefix), "VERSION", QString("Quassel IRC (v%1 build >= %2) -- http://www.quassel-irc.org") .arg(Global::quasselVersion).arg(Global::quasselBuild)); emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP VERSION request by %1").arg(prefix)); diff --git a/version.inc b/version.inc index a5be41b0..e97de3c6 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-alpha5-pre"; quasselDate = "2008-04-02"; - quasselBuild = 686; + quasselBuild = 690; //! Minimum client build number the core needs clientBuildNeeded = 642; -- 2.20.1