43 lines
1.3 KiB
Diff
43 lines
1.3 KiB
Diff
|
From ecf0566285599605565cdb769f19160dfdfc5d12 Mon Sep 17 00:00:00 2001
|
||
|
From: Martin Sandsmark <martin.sandsmark@kde.org>
|
||
|
Date: Wed, 16 Jul 2014 17:58:49 +0200
|
||
|
Subject: [PATCH] Fix race condition.
|
||
|
|
||
|
Using the PID based method in polkit is deprecated because of PID reuse
|
||
|
races.
|
||
|
---
|
||
|
src/backends/polkit-1/Polkit1Backend.cpp | 13 ++-----------
|
||
|
1 file changed, 2 insertions(+), 11 deletions(-)
|
||
|
|
||
|
diff --git a/src/backends/polkit-1/Polkit1Backend.cpp b/src/backends/polkit-1/Polkit1Backend.cpp
|
||
|
index 165f7bb..1e6febe 100644
|
||
|
--- a/src/backends/polkit-1/Polkit1Backend.cpp
|
||
|
+++ b/src/backends/polkit-1/Polkit1Backend.cpp
|
||
|
@@ -158,21 +158,12 @@ Action::AuthStatus Polkit1Backend::actionStatus(const QString &action)
|
||
|
|
||
|
QByteArray Polkit1Backend::callerID() const
|
||
|
{
|
||
|
- QByteArray a;
|
||
|
- QDataStream s(&a, QIODevice::WriteOnly);
|
||
|
- s << QCoreApplication::applicationPid();
|
||
|
-
|
||
|
- return a;
|
||
|
+ return QDBusConnection::systemBus().baseService().toUtf8();
|
||
|
}
|
||
|
|
||
|
bool Polkit1Backend::isCallerAuthorized(const QString &action, QByteArray callerID)
|
||
|
{
|
||
|
- QDataStream s(&callerID, QIODevice::ReadOnly);
|
||
|
- qint64 pid;
|
||
|
-
|
||
|
- s >> pid;
|
||
|
-
|
||
|
- PolkitQt1::UnixProcessSubject subject(pid);
|
||
|
+ PolkitQt1::SystemBusNameSubject subject(QString::fromUtf8(callerID));
|
||
|
PolkitQt1::Authority *authority = PolkitQt1::Authority::instance();
|
||
|
|
||
|
PolkitResultEventLoop e;
|
||
|
--
|
||
|
1.9.1
|
||
|
|