From b916df11106d46da9df81c68a0e02de43e75ddbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Sat, 30 Jan 2021 01:53:59 +0100 Subject: [PATCH] gdm: Cancel user verification on UserVerifier destruction When we cancel an user authentication via Escape key or cancel button on AuthPrompt we reset the view and we emit a 'cancelled' signal that leads to destroying the auth prompt and the user verifier. However, the verifier may still have an operation in progress and its completion may take some time (as in the case of gdm-fingerprint), but we just leave the gdm worker running until its pam module completes (potentially never) clearing and disposing its handle. So, instead of just clearing the verify, actually cancel and clear it. In case the user verifier is set, clearing the relevant data will happen anyway as part of the cancel() call. Ideally this would have been handled by gdm itself, but unfortunately we can't fix it there because the verifier itself is a class generated by gdbus-codegen, so we can't handle this automatically on disposal nor we can automatically monitor when the caller proxy is stopped on our side. Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3654 Part-of: --- js/gdm/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/gdm/util.js b/js/gdm/util.js index 1bd2b6b8b..47bb2314e 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -236,7 +236,7 @@ var ShellUserVerifier = class { } destroy() { - this.clear(); + this.cancel(); this._settings.run_dispose(); this._settings = null;