From f92c7d6e3b847d502e40bc0578d830d4919f09e4 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Fri, 14 May 2010 13:49:51 +0000 Subject: Merge the use of multiple QString()::arg(QString) calls to avoid format strings Filter out any urlencoded path form dcc file names git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4317 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/dcc/requests.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/modules/dcc/requests.cpp') diff --git a/src/modules/dcc/requests.cpp b/src/modules/dcc/requests.cpp index 0ba8569a8..88d6fe968 100644 --- a/src/modules/dcc/requests.cpp +++ b/src/modules/dcc/requests.cpp @@ -85,7 +85,7 @@ static void dcc_module_request_error(KviDccRequest * dcc,const QString& errText) if(KVI_OPTION_BOOL(KviOption_boolNotifyFailedDccHandshakes)) { - QString szError = QString("Sorry, your DCC %1 request can't be satisfied: %2").arg(dcc->szType.ptr()).arg(errText); + QString szError = QString("Sorry, your DCC %1 request can't be satisfied: %2").arg(dcc->szType.ptr(), errText); dcc_module_reply_errmsg(dcc,szError); } } @@ -464,6 +464,16 @@ static void dccModuleParseDccSend(KviDccRequest *dcc) dcc->szParam1.cutToLast('/'); } + if(dcc->szParam1.contains("%2F")) + { + if(!dcc->ctcpMsg->msg->haltOutput()) + { + dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG, + __tr2qs_ctx("The above request is broken: The filename contains path components, stripping the leading path and trying to continue","dcc"),dcc->szParam1.ptr()); + } + dcc->szParam1.cutToLast("%2F"); + } + KviStr szExtensions = dcc->szType; szExtensions.cutRight(4); // cut off SEND -- cgit v1.3.1-10-gc9f91