parent
602b05fc81
commit
d6b82c6552
86
0001-polkitAgent-Guard-against-repeated-close-calls.patch
Normal file
86
0001-polkitAgent-Guard-against-repeated-close-calls.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
From 7c9dbc66d9ab1f3adad29c827fac2d7d3ee05fae Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Sat, 21 Apr 2018 18:39:10 +0200
|
||||||
|
Subject: [PATCH] polkitAgent: Guard against repeated close() calls
|
||||||
|
|
||||||
|
We use the close() method to disconnect signal handlers set up in
|
||||||
|
init(), however the handler ID is only valid in the first call in
|
||||||
|
case the method is called more than once.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/issues/221
|
||||||
|
---
|
||||||
|
js/ui/components/polkitAgent.js | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/components/polkitAgent.js b/js/ui/components/polkitAgent.js
|
||||||
|
index 316bc2ad1..7a0682c4b 100644
|
||||||
|
--- a/js/ui/components/polkitAgent.js
|
||||||
|
+++ b/js/ui/components/polkitAgent.js
|
||||||
|
@@ -174,61 +174,63 @@ var AuthenticationDialog = new Lang.Class({
|
||||||
|
transition: 'linear'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Tweener.addTween(this._workSpinner.actor,
|
||||||
|
{ opacity: 0,
|
||||||
|
time: WORK_SPINNER_ANIMATION_TIME,
|
||||||
|
transition: 'linear',
|
||||||
|
onCompleteScope: this,
|
||||||
|
onComplete() {
|
||||||
|
if (this._workSpinner)
|
||||||
|
this._workSpinner.stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
performAuthentication() {
|
||||||
|
this.destroySession();
|
||||||
|
this._session = new PolkitAgent.Session({ identity: this._identityToAuth,
|
||||||
|
cookie: this._cookie });
|
||||||
|
this._session.connect('completed', this._onSessionCompleted.bind(this));
|
||||||
|
this._session.connect('request', this._onSessionRequest.bind(this));
|
||||||
|
this._session.connect('show-error', this._onSessionShowError.bind(this));
|
||||||
|
this._session.connect('show-info', this._onSessionShowInfo.bind(this));
|
||||||
|
this._session.initiate();
|
||||||
|
},
|
||||||
|
|
||||||
|
close(timestamp) {
|
||||||
|
this.parent(timestamp);
|
||||||
|
|
||||||
|
- Main.sessionMode.disconnect(this._sessionUpdatedId);
|
||||||
|
+ if (this._sessionUpdatedId)
|
||||||
|
+ Main.sessionMode.disconnect(this._sessionUpdatedId);
|
||||||
|
+ this._sessionUpdatedId = 0;
|
||||||
|
},
|
||||||
|
|
||||||
|
_ensureOpen() {
|
||||||
|
// NOTE: ModalDialog.open() is safe to call if the dialog is
|
||||||
|
// already open - it just returns true without side-effects
|
||||||
|
if (!this.open(global.get_current_time())) {
|
||||||
|
// This can fail if e.g. unable to get input grab
|
||||||
|
//
|
||||||
|
// In an ideal world this wouldn't happen (because the
|
||||||
|
// Shell is in complete control of the session) but that's
|
||||||
|
// just not how things work right now.
|
||||||
|
//
|
||||||
|
// One way to make this happen is by running 'sleep 3;
|
||||||
|
// pkexec bash' and then opening a popup menu.
|
||||||
|
//
|
||||||
|
// We could add retrying if this turns out to be a problem
|
||||||
|
|
||||||
|
log('polkitAuthenticationAgent: Failed to show modal dialog.' +
|
||||||
|
' Dismissing authentication request for action-id ' + this.actionId +
|
||||||
|
' cookie ' + this._cookie);
|
||||||
|
this._emitDone(true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_emitDone(dismissed) {
|
||||||
|
if (!this._doneEmitted) {
|
||||||
|
this._doneEmitted = true;
|
||||||
|
this.emit('done', dismissed);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
--
|
||||||
|
2.16.2
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: gnome-shell
|
Name: gnome-shell
|
||||||
Version: 3.28.1
|
Version: 3.28.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Window management and application launching for GNOME
|
Summary: Window management and application launching for GNOME
|
||||||
|
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
@ -13,6 +13,8 @@ Source0: http://download.gnome.org/sources/gnome-shell/3.28/%{name}-%{ver
|
|||||||
# Replace Epiphany with Firefox in the default favourite apps list
|
# Replace Epiphany with Firefox in the default favourite apps list
|
||||||
Patch1: gnome-shell-favourite-apps-firefox.patch
|
Patch1: gnome-shell-favourite-apps-firefox.patch
|
||||||
|
|
||||||
|
Patch10: 0001-polkitAgent-Guard-against-repeated-close-calls.patch
|
||||||
|
|
||||||
%define gnome_bluetooth_version 1:3.9.0
|
%define gnome_bluetooth_version 1:3.9.0
|
||||||
%define gobject_introspection_version 1.45.4
|
%define gobject_introspection_version 1.45.4
|
||||||
%define gjs_version 1.51.90
|
%define gjs_version 1.51.90
|
||||||
@ -120,6 +122,8 @@ easy to use experience.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1 -b .firefox
|
%patch1 -p1 -b .firefox
|
||||||
|
|
||||||
|
%patch10 -p1 -b .polkit-fix
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson
|
%meson
|
||||||
%meson_build
|
%meson_build
|
||||||
@ -184,6 +188,10 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null
|
|||||||
%{_mandir}/man1/%{name}.1.gz
|
%{_mandir}/man1/%{name}.1.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 24 2018 Ray Strode <rstrode@redhat.com> - 3.28.1-2
|
||||||
|
- pull polkit cancel lock up from upstream
|
||||||
|
Resolves: #1568213
|
||||||
|
|
||||||
* Fri Apr 13 2018 Florian Müllner <fmuellner@redhat.com> - 3.28.1-1
|
* Fri Apr 13 2018 Florian Müllner <fmuellner@redhat.com> - 3.28.1-1
|
||||||
- Update to 3.28.1
|
- Update to 3.28.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user