OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/polkit-qt5-1?expand=0&rev=1
45 lines
1.5 KiB
Diff
45 lines
1.5 KiB
Diff
From: Martin Briza <m@rtinbriza.cz>
|
|
Date: Fri, 12 Jul 2013 13:37:05 +0000
|
|
Subject: Fixed GCancellable handling in PolkitQtListener
|
|
X-Git-Url: http://quickgit.kde.org/?p=polkit-qt-1.git&a=commitdiff&h=57a81d0c90fc509fd197b30378cc0ada3b7afbf1
|
|
---
|
|
Fixed GCancellable handling in PolkitQtListener
|
|
|
|
There was a race condition happening on two simultanneous requests to the agent, causing it to crash.
|
|
|
|
BUGS: 270489
|
|
---
|
|
|
|
|
|
--- a/agent/polkitqtlistener.cpp
|
|
+++ b/agent/polkitqtlistener.cpp
|
|
@@ -115,6 +115,13 @@
|
|
qDebug() << "Listener adapter polkit_qt_listener_initiate_authentication";
|
|
PolkitQtListener *listener = POLKIT_QT_LISTENER(agent_listener);
|
|
|
|
+ if (cancellable != NULL) {
|
|
+ g_cancellable_connect(cancellable,
|
|
+ G_CALLBACK(cancelled_cb),
|
|
+ agent_listener,
|
|
+ NULL);
|
|
+ }
|
|
+
|
|
// The result of asynchronous method will be created here and it will be pushed to the listener.
|
|
GSimpleAsyncResult *result = g_simple_async_result_new((GObject *) listener, callback, user_data, agent_listener);
|
|
qDebug() << "GSimpleAsyncResult:" << result;
|
|
@@ -129,13 +136,6 @@
|
|
cancellable,
|
|
result);
|
|
|
|
- if (cancellable != NULL) {
|
|
- g_signal_connect(cancellable,
|
|
- "cancelled",
|
|
- G_CALLBACK(cancelled_cb),
|
|
- agent_listener);
|
|
- }
|
|
-
|
|
}
|
|
|
|
static gboolean polkit_qt_listener_initiate_authentication_finish(PolkitAgentListener *listener,
|
|
|