diff options
Diffstat (limited to 'kde-apps/libktnef/files/libktnef-16.12.2-directory-traversal.patch')
-rw-r--r-- | kde-apps/libktnef/files/libktnef-16.12.2-directory-traversal.patch | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/kde-apps/libktnef/files/libktnef-16.12.2-directory-traversal.patch b/kde-apps/libktnef/files/libktnef-16.12.2-directory-traversal.patch deleted file mode 100644 index d41b4f9c56f8..000000000000 --- a/kde-apps/libktnef/files/libktnef-16.12.2-directory-traversal.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 4ff38aa15487d69021aacad4b078500f77fb4ae8 -Author: Albert Astals Cid <aacid@kde.org> -Date: Mon Feb 27 19:03:49 2017 +0100 - - Fix Directory Traversal problem in ktnef - - Reported by Eric Sesterhenn - - Patch reviewed by Laurent Montel - - CCMAIL: eric.sesterhenn@x41-dsec.de - -diff --git a/src/ktnefparser.cpp b/src/ktnefparser.cpp -index ce40e40..0678003 100644 ---- a/src/ktnefparser.cpp -+++ b/src/ktnefparser.cpp -@@ -41,7 +41,9 @@ - - #include <QtCore/QDateTime> - #include <QtCore/QDataStream> -+#include <QtCore/QDir> - #include <QtCore/QFile> -+#include <QtCore/QFileInfo> - #include <QtCore/QVariant> - #include <QtCore/QList> - -@@ -446,7 +448,9 @@ bool KTNEFParser::extractFile(const QString &filename) const - bool KTNEFParser::ParserPrivate::extractAttachmentTo(KTNEFAttach *att, - const QString &dirname) - { -- QString filename = dirname + QLatin1Char('/'); -+ const QString destDir(QDir(dirname).absolutePath()); // get directory path without any "." or ".." -+ -+ QString filename = destDir + QLatin1Char('/'); - if (!att->fileName().isEmpty()) { - filename += att->fileName(); - } else { -@@ -462,6 +466,15 @@ bool KTNEFParser::ParserPrivate::extractAttachmentTo(KTNEFAttach *att, - if (!device_->seek(att->offset())) { - return false; - } -+ -+ const QFileInfo fi(filename); -+ if (!fi.absoluteFilePath().startsWith(destDir)) { -+ qWarning() << "Attempted extract into" << fi.absoluteFilePath() -+ << "which is outside of the extraction root folder" << destDir << "." -+ << "Changing export of contained files to extraction root folder."; -+ filename = destDir + QLatin1Char('/') + fi.fileName(); -+ } -+ - QSaveFile outfile(filename); - if (!outfile.open(QIODevice::WriteOnly)) { - return false; |