aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2007-03-04 09:21:11 +0000
committerGravatar Alexey Uzhva2007-03-04 09:21:11 +0000
commit7e6cbc5bb7cf0b0459d6fbf014f0c8663e28e0e6 (patch)
treebe7f368e0370072c4d5a71321e104e9281a414f5 /src
parentquick fix (diff)
downloadKVIrc-7e6cbc5bb7cf0b0459d6fbf014f0c8663e28e0e6.tar.gz
KVIrc-7e6cbc5bb7cf0b0459d6fbf014f0c8663e28e0e6.tar.bz2
KVIrc-7e6cbc5bb7cf0b0459d6fbf014f0c8663e28e0e6.zip
CRITICAL bugfix. Remote exploit: /ctcp -n NICK avatar z:/test.jpg; where z: - unexisting drive letter
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@406 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/file/kvi_fileutils.cpp5
-rw-r--r--src/kvilib/file/kvi_fileutils.h2
-rw-r--r--src/modules/file/libkvifile.cpp2
3 files changed, 8 insertions, 1 deletions
diff --git a/src/kvilib/file/kvi_fileutils.cpp b/src/kvilib/file/kvi_fileutils.cpp
index 858489111..e67c1f9b2 100644
--- a/src/kvilib/file/kvi_fileutils.cpp
+++ b/src/kvilib/file/kvi_fileutils.cpp
@@ -377,6 +377,11 @@ namespace KviFileUtils
QString extractFileName(const QString &szFileNameWithPath)
{
+ return QFileInfo(szFileNameWithPath).fileName();
+ }
+
+ QString extractFilePath(const QString &szFileNameWithPath)
+ {
#ifdef COMPILE_USE_QT4
return QFileInfo(szFileNameWithPath).absoluteFilePath();
#else
diff --git a/src/kvilib/file/kvi_fileutils.h b/src/kvilib/file/kvi_fileutils.h
index 6c70a88db..511f421d1 100644
--- a/src/kvilib/file/kvi_fileutils.h
+++ b/src/kvilib/file/kvi_fileutils.h
@@ -77,6 +77,8 @@ namespace KviFileUtils
extern KVILIB_API bool readFile(const char* path,QString &szBuffer,unsigned int uMaxSize = 65535);
// extracts the filename from a complete path (strips leading path)
extern KVILIB_API QString extractFileName(const QString &szFileNameWithPath);
+
+ extern KVILIB_API QString extractFilePath(const QString &szFileNameWithPath);
// cp -f
extern KVILIB_API bool copyFile(const QString &szSrc,const QString &szDst);
extern KVILIB_API bool copyFile(const char* src,const char* dst);
diff --git a/src/modules/file/libkvifile.cpp b/src/modules/file/libkvifile.cpp
index 6e77329ce..90eaaa97e 100644
--- a/src/modules/file/libkvifile.cpp
+++ b/src/modules/file/libkvifile.cpp
@@ -1207,7 +1207,7 @@ static bool file_kvs_fnc_extractfilename(KviKvsModuleFunctionCall * c)
KVSM_PARAMETERS_BEGIN(c)
KVSM_PARAMETER("filepath",KVS_PT_NONEMPTYSTRING,0,szName)
KVSM_PARAMETERS_END(c)
- KviFileUtils::adjustFilePath(szName);
+ KviFileUtils::extractFileName(szName);
KviQString::cutToLast(szName,KVI_PATH_SEPARATOR_CHAR);
c->returnValue()->setString(szName);
return true;