net-misc/smb4k: Drop old

Package-Manager: Portage-2.3.8, Repoman-2.3.3
This commit is contained in:
Andreas Sturmlechner
2017-09-01 00:04:01 +02:00
parent 97b4b85870
commit abd1f610e4
4 changed files with 0 additions and 422 deletions

View File

@@ -1,3 +1,2 @@
DIST smb4k-1.2.3.tar.xz 3942852 SHA256 e751ae0f6b86c532a7e3796ae9c4590f46009075938afecb5ddd0c7421cf08ef SHA512 2066439ddda9abfb3649a1f53097637490b2187543a0cff32ad6b2ff6b250c9e3bb7b910f718a4c77761d064db8cbac7e0db2e9cf5f6ef5faf6a244fb070301b WHIRLPOOL f70b6ebb192888039844036b5798726f95c13ae5592220043c615e5378a04eb6073520ebb4b612248dd34096c17e7054db8ea11f1ed6fa6d6fad2dc6b73d410c
DIST smb4k-2.0.0.tar.xz 3594964 SHA256 8a9f9bbfc9876816393d9f269952ddfe896c540e2de26b634b8e709a13ceca95 SHA512 2fb2123a6be888b2d75f3ebb155e021aa85fa6e9c3ec7c0092ef2c40f938e09a1b9e7c1608ecc457760ad37d9faf93c2ddba0b8e5afcf4b1ed1c61b2d9c702f2 WHIRLPOOL 07c2b289f4da54d01a9b6a87dfda7992ed056d1ef29819302391632898ce16aa307cdfdb1342168f4866f44974d788680017e1f763a6fa85b43fc5af68364174
DIST smb4k-2.0.2.tar.xz 3588608 SHA256 01cbd10fe7a293243a65333baa65871eec8de007d0110639498fc1e4c190a199 SHA512 de210b059757525c6e5b6db733c70f43f62ba14cdc447848c84325d3b838d2ac6d8aa591ef67881decb39801b9519ef05fc805e94bc02b93c629457194e1a974 WHIRLPOOL 3855c915319d017a5cb667c1f7b59357a2aa86586635a1ca4e80820dd695922fe54889dbd12f6b27d39cbbb767b313b680ac76069e3562791cd962e2ec3c880a

View File

@@ -1,10 +0,0 @@
--- a/CMakeLists.txt 2017-02-05 20:23:51.000000000 +0100
+++ b/CMakeLists.txt 2017-02-07 01:55:44.766375980 +0100
@@ -94,7 +94,3 @@
########### install files ###############
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
-find_package(KF5I18n CONFIG REQUIRED)
-ki18n_install(po)
-find_package(KF5DocTools CONFIG REQUIRED)
-kdoctools_install(po)

View File

@@ -1,361 +0,0 @@
From a90289b0962663bc1d247bbbd31b9e65b2ca000e Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Wed, 10 May 2017 10:21:02 +0200
Subject: Find the mount/umount commands in the helper
Instead of trusting what we get passed in
CVE-2017-8849
---
core/smb4kglobal.cpp | 32 +++++++++++++++++++
core/smb4kglobal.h | 14 +++++++++
core/smb4kmounter.cpp | 42 +++----------------------
helpers/CMakeLists.txt | 7 +++++
helpers/smb4kmounthelper.cpp | 75 ++++++++++++++++++++++++++++++++++++++++----
helpers/smb4kmounthelper.h | 2 +-
6 files changed, 127 insertions(+), 45 deletions(-)
diff --git a/core/smb4kglobal.cpp b/core/smb4kglobal.cpp
index 765203d..cfa7ba5 100644
--- a/core/smb4kglobal.cpp
+++ b/core/smb4kglobal.cpp
@@ -864,3 +864,35 @@ QStringList Smb4KGlobal::whitelistedMountArguments()
#endif
+const QString Smb4KGlobal::findMountExecutable()
+{
+ QStringList paths;
+ paths << "/bin";
+ paths << "/sbin";
+ paths << "/usr/bin";
+ paths << "/usr/sbin";
+ paths << "/usr/local/bin";
+ paths << "/usr/local/sbin";
+
+#if defined(Q_OS_LINUX)
+ return QStandardPaths::findExecutable("mount.cifs", paths);
+#elif defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD)
+ return QStandardPaths::findExecutable("mount_smbfs", paths);
+#else
+ return QString();
+#endif
+}
+
+
+const QString Smb4KGlobal::findUmountExecutable()
+{
+ QStringList paths;
+ paths << "/bin";
+ paths << "/sbin";
+ paths << "/usr/bin";
+ paths << "/usr/sbin";
+ paths << "/usr/local/bin";
+ paths << "/usr/local/sbin";
+
+ return QStandardPaths::findExecutable("umount", paths);
+}
diff --git a/core/smb4kglobal.h b/core/smb4kglobal.h
index 63b6294..f29e342 100644
--- a/core/smb4kglobal.h
+++ b/core/smb4kglobal.h
@@ -454,6 +454,20 @@ namespace Smb4KGlobal
*/
Q_DECL_EXPORT QStringList whitelistedMountArguments();
#endif
+
+ /**
+ * Find the mount executable on the system.
+ *
+ * @returns the path of the mount executable.
+ */
+ Q_DECL_EXPORT const QString findMountExecutable();
+
+ /**
+ * Find the umount executable on the system.
+ *
+ * @returns the path of the umount executable.
+ */
+ Q_DECL_EXPORT const QString findUmountExecutable();
};
#endif
diff --git a/core/smb4kmounter.cpp b/core/smb4kmounter.cpp
index 91f3863..0bc71aa 100644
--- a/core/smb4kmounter.cpp
+++ b/core/smb4kmounter.cpp
@@ -1104,16 +1104,7 @@ void Smb4KMounter::timerEvent(QTimerEvent *)
bool Smb4KMounter::fillMountActionArgs(Smb4KShare *share, QVariantMap& map)
{
// Find the mount program.
- QString mount;
- QStringList paths;
- paths << "/bin";
- paths << "/sbin";
- paths << "/usr/bin";
- paths << "/usr/sbin";
- paths << "/usr/local/bin";
- paths << "/usr/local/sbin";
-
- mount = QStandardPaths::findExecutable("mount.cifs", paths);
+ const QString mount = findMountExecutable();
if (!mount.isEmpty())
{
@@ -1645,16 +1636,7 @@ bool Smb4KMounter::fillMountActionArgs(Smb4KShare *share, QVariantMap& map)
bool Smb4KMounter::fillMountActionArgs(Smb4KShare *share, QVariantMap& map)
{
// Find the mount program.
- QString mount;
- QStringList paths;
- paths << "/bin";
- paths << "/sbin";
- paths << "/usr/bin";
- paths << "/usr/sbin";
- paths << "/usr/local/bin";
- paths << "/usr/local/sbin";
-
- mount = QStandardPaths::findExecutable("mount_smbfs", paths);
+ const QString mount = findMountExecutable();
if (!mount.isEmpty())
{
@@ -1823,15 +1805,7 @@ bool Smb4KMounter::fillUnmountActionArgs(Smb4KShare *share, bool force, bool sil
//
// The umount program
//
- QStringList paths;
- paths << "/bin";
- paths << "/sbin";
- paths << "/usr/bin";
- paths << "/usr/sbin";
- paths << "/usr/local/bin";
- paths << "/usr/local/sbin";
-
- QString umount = QStandardPaths::findExecutable("umount", paths);
+ const QString umount = findUmountExecutable();
if (umount.isEmpty() && !silent)
{
@@ -1884,15 +1858,7 @@ bool Smb4KMounter::fillUnmountActionArgs(Smb4KShare *share, bool force, bool sil
//
// The umount program
//
- QStringList paths;
- paths << "/bin";
- paths << "/sbin";
- paths << "/usr/bin";
- paths << "/usr/sbin";
- paths << "/usr/local/bin";
- paths << "/usr/local/sbin";
-
- QString umount = QStandardPaths::findExecutable("umount", paths);
+ const QString umount = findUmountExecutable();
if (umount.isEmpty() && !silent)
{
diff --git a/helpers/CMakeLists.txt b/helpers/CMakeLists.txt
index 77bb3a5..015c8b6 100644
--- a/helpers/CMakeLists.txt
+++ b/helpers/CMakeLists.txt
@@ -1,8 +1,15 @@
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_SOURCE_DIR}/core
+ ${CMAKE_BINARY_DIR}/core)
+
set(smb4kmounthelper_SRCS smb4kmounthelper.cpp)
add_executable(mounthelper ${smb4kmounthelper_SRCS})
target_link_libraries(mounthelper
+ smb4kcore
Qt5::Core
KF5::Auth
KF5::CoreAddons
diff --git a/helpers/smb4kmounthelper.cpp b/helpers/smb4kmounthelper.cpp
index 641530e..0a1e215 100644
--- a/helpers/smb4kmounthelper.cpp
+++ b/helpers/smb4kmounthelper.cpp
@@ -2,7 +2,7 @@
The helper that mounts and unmounts shares.
-------------------
begin : Sa Okt 16 2010
- copyright : (C) 2010-2016 by Alexander Reinholdt
+ copyright : (C) 2010-2017 by Alexander Reinholdt
email : alexander.reinholdt@kdemail.net
***************************************************************************/
@@ -29,6 +29,7 @@
// application specific includes
#include "smb4kmounthelper.h"
+#include "../core/smb4kglobal.h"
// Qt includes
#include <QProcessEnvironment>
@@ -42,14 +43,24 @@
#include <KI18n/KLocalizedString>
#include <KIOCore/KMountPoint>
+using namespace Smb4KGlobal;
+
KAUTH_HELPER_MAIN("org.kde.smb4k.mounthelper", Smb4KMountHelper);
ActionReply Smb4KMountHelper::mount(const QVariantMap &args)
{
+ //
+ // The action reply
+ //
ActionReply reply;
//
+ // Get the mount executable
+ //
+ const QString mount = findMountExecutable();
+
+ //
// Iterate through the entries.
//
QMapIterator<QString, QVariant> it(args);
@@ -61,6 +72,20 @@ ActionReply Smb4KMountHelper::mount(const QVariantMap &args)
QVariantMap entry = it.value().toMap();
//
+ // Check the executable
+ //
+ if (mount != entry["mh_command"].toString())
+ {
+ // Something weird is going on, bail out.
+ reply.setType(ActionReply::HelperErrorType);
+ return reply;
+ }
+ else
+ {
+ // Do nothing
+ }
+
+ //
// The process
//
KProcess proc(this);
@@ -87,12 +112,12 @@ ActionReply Smb4KMountHelper::mount(const QVariantMap &args)
//
QStringList command;
#if defined(Q_OS_LINUX)
- command << entry["mh_command"].toString();
+ command << mount;
command << entry["mh_unc"].toString();
command << entry["mh_mountpoint"].toString();
command << entry["mh_options"].toStringList();
#elif defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD)
- command << entry["mh_command"].toString();
+ command << mount;
command << entry["mh_options"].toStringList();
command << entry["mh_unc"].toString();
command << entry["mh_mountpoint"].toString();
@@ -208,6 +233,11 @@ ActionReply Smb4KMountHelper::unmountOneByOne(const QVariantMap& args)
ActionReply reply;
//
+ // Get the mount executable
+ //
+ const QString umount = findUmountExecutable();
+
+ //
// Iterate through the entries.
//
QMapIterator<QString, QVariant> it(args);
@@ -217,6 +247,20 @@ ActionReply Smb4KMountHelper::unmountOneByOne(const QVariantMap& args)
it.next();
QString index = it.key();
QVariantMap entry = it.value().toMap();
+
+ //
+ // Check the executable
+ //
+ if (umount != entry["mh_command"].toString())
+ {
+ // Something weird is going on, bail out.
+ reply.setType(ActionReply::HelperErrorType);
+ return reply;
+ }
+ else
+ {
+ // Do nothing
+ }
//
// Check if the mountpoint is valid and the filesystem is correct.
@@ -261,7 +305,7 @@ ActionReply Smb4KMountHelper::unmountOneByOne(const QVariantMap& args)
// The command
//
QStringList command;
- command << entry["mh_command"].toString();
+ command << umount;
command << entry["mh_options"].toStringList();
command << entry["mh_mountpoint"].toString();
@@ -342,6 +386,11 @@ ActionReply Smb4KMountHelper::unmountAtOnce(const QVariantMap& args)
ActionReply reply;
//
+ // Get the mount executable
+ //
+ const QString umount = findUmountExecutable();
+
+ //
// Check the mountpoints and put the valid ones into a string list
//
QStringList validMountPoints;
@@ -351,7 +400,7 @@ ActionReply Smb4KMountHelper::unmountAtOnce(const QVariantMap& args)
{
it.next();
QVariantMap entry = it.value().toMap();
-
+
bool mountPointOk = false;
KMountPoint::List mountPoints = KMountPoint::currentMountPoints(KMountPoint::BasicInfoNeeded|KMountPoint::NeedMountOptions);
@@ -399,9 +448,23 @@ ActionReply Smb4KMountHelper::unmountAtOnce(const QVariantMap& args)
if (!validMountPoints.isEmpty())
{
+ //
+ // Check the executable
+ //
+ if (umount != args.first().toMap().value("mh_command").toString())
+ {
+ // Something weird is going on, bail output
+ reply.setType(ActionReply::HelperErrorType);
+ return reply;
+ }
+ else
+ {
+ // Do nothing
+ }
+
// The command
QStringList command;
- command << args.first().toMap().value("mh_command").toString();
+ command << umount;
command << args.first().toMap().value("mh_options").toStringList();
command << validMountPoints;
diff --git a/helpers/smb4kmounthelper.h b/helpers/smb4kmounthelper.h
index f3bc573..4b735af 100644
--- a/helpers/smb4kmounthelper.h
+++ b/helpers/smb4kmounthelper.h
@@ -2,7 +2,7 @@
The helper that mounts and unmounts shares.
-------------------
begin : Sa Okt 16 2010
- copyright : (C) 2010-2016 by Alexander Reinholdt
+ copyright : (C) 2010-2017 by Alexander Reinholdt
email : alexander.reinholdt@kdemail.net
***************************************************************************/
--
cgit v0.11.2

View File

@@ -1,50 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
KDE_HANDBOOK="forceoptional"
inherit kde5
DESCRIPTION="Advanced network neighborhood browser"
HOMEPAGE="https://sourceforge.net/p/smb4k/home/Home/"
[[ ${PV} != 9999 ]] && SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz"
[[ ${PV} != 9999 ]] && KEYWORDS="~amd64 ~x86"
LICENSE="GPL-2"
IUSE=""
DEPEND="
$(add_frameworks_dep kauth)
$(add_frameworks_dep kcompletion)
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep kdbusaddons)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kiconthemes)
$(add_frameworks_dep kio)
$(add_frameworks_dep kjobwidgets)
$(add_frameworks_dep knotifications)
$(add_frameworks_dep kparts)
$(add_frameworks_dep kwallet)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kwindowsystem)
$(add_frameworks_dep kxmlgui)
$(add_frameworks_dep solid)
$(add_qt_dep qtdeclarative)
$(add_qt_dep qtgui)
$(add_qt_dep qtnetwork)
$(add_qt_dep qtprintsupport)
$(add_qt_dep qttest)
$(add_qt_dep qtwidgets)
"
RDEPEND="${DEPEND}
!net-misc/smb4k:4
>=net-fs/samba-3.4.2[cups]
"
PATCHES=(
"${FILESDIR}"/${PN}-1.9.90-po2.patch
"${FILESDIR}"/${P}-CVE-2017-8849.patch
)