mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
net-misc/smb4k: Drop old
Package-Manager: Portage-2.3.8, Repoman-2.3.3
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
)
|
||||
Reference in New Issue
Block a user