98ae87bfd4
- Add patch to allow running PIE enabled binaries (kde#350018): * 0001-Identify-PIE-binaries-application-x-sharedlib-as-exe.patch OBS-URL: https://build.opensuse.org/request/show/498963 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kio?expand=0&rev=47
67 lines
2.6 KiB
Diff
67 lines
2.6 KiB
Diff
From 5fce5efdd5fc2e2f4f3a2b7e89ba230318c7d21a Mon Sep 17 00:00:00 2001
|
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
Date: Sun, 28 May 2017 14:49:03 +0200
|
|
Subject: [PATCH] Identify PIE binaries (application/x-sharedlib) as executable
|
|
files
|
|
|
|
Summary:
|
|
x86_64 binaries compiled with PIE are just shared objects with the
|
|
executable bit set. Without this patch, kio does not know that they
|
|
can be executed as well, causing "kioclient5 exec" to ask for an
|
|
application that can handle application/x-sharedlib.
|
|
|
|
BUG: 350018
|
|
|
|
Test Plan: Can run applications fine again.
|
|
|
|
Reviewers: dfaure, aacid
|
|
|
|
Subscribers: #frameworks
|
|
|
|
Tags: #frameworks
|
|
|
|
Differential Revision: https://phabricator.kde.org/D6002
|
|
---
|
|
src/widgets/krun.cpp | 4 +++-
|
|
src/widgets/krun.h | 2 +-
|
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/widgets/krun.cpp b/src/widgets/krun.cpp
|
|
index 399ca975..35d894a7 100644
|
|
--- a/src/widgets/krun.cpp
|
|
+++ b/src/widgets/krun.cpp
|
|
@@ -139,7 +139,8 @@ bool KRun::isExecutableFile(const QUrl &url, const QString &mimetype)
|
|
#ifdef Q_OS_WIN
|
|
mimeType.inherits(QLatin1String("application/x-ms-dos-executable")) ||
|
|
#endif
|
|
- mimeType.inherits(QStringLiteral("application/x-executable-script"))
|
|
+ mimeType.inherits(QStringLiteral("application/x-executable-script")) ||
|
|
+ mimeType.inherits(QStringLiteral("application/x-sharedlib"))
|
|
) {
|
|
return true;
|
|
}
|
|
@@ -1438,6 +1439,7 @@ bool KRun::isExecutable(const QString &serviceType)
|
|
{
|
|
return (serviceType == QLatin1String("application/x-desktop") ||
|
|
serviceType == QLatin1String("application/x-executable") ||
|
|
+ serviceType == QLatin1String("application/x-sharedlib") ||
|
|
serviceType == QLatin1String("application/x-ms-dos-executable") ||
|
|
serviceType == QLatin1String("application/x-shellscript"));
|
|
}
|
|
diff --git a/src/widgets/krun.h b/src/widgets/krun.h
|
|
index 9885a838..f9069672 100644
|
|
--- a/src/widgets/krun.h
|
|
+++ b/src/widgets/krun.h
|
|
@@ -434,7 +434,7 @@ public:
|
|
* To be executable the file must pass the following rules:
|
|
* -# Must reside on the local filesystem.
|
|
* -# Must be marked as executable for the user by the filesystem.
|
|
- * -# The mime type must inherit application/x-executable or application/x-executable-script.
|
|
+ * -# The mime type must inherit application/x-executable, application/x-executable-script or application/x-sharedlib.
|
|
* To allow a script to run when the above rules are satisfied add the entry
|
|
* @code
|
|
* X-KDE-IsAlso=application/x-executable-script
|
|
--
|
|
2.13.0
|
|
|