Package: gnome-shell Version: 3.14.2-3+b1 Severity: important Tags: patch Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? 1) User list disabled ([org/gnome/login-screen] disable-user-list=true) 2) Hit escape at login window 3) Type username 4) Username field replaced by a new, empty username field - where people will type their password in clear * What exactly did you do (or not do) that was effective (or ineffective)? * What was the outcome of this action? Password shown in clear on screen and not being logged in * What outcome did you expect instead? Password not shown and being logged in. Upstreams bug 729246, https://bugzilla.gnome.org/show_bug.cgi?id=729246, with working patch attached. Tested on gnome-shell 3.14.2-3_amd64. -- System Information: Debian Release: 8.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Init: systemd (via /run/systemd/system) Versions of packages gnome-shell depends on: ii dconf-gsettings-backend [gsettings-back 0.22.0-1 ii evolution-data-server 3.12.9~git20141128.5242b0-2+deb8u2 ii gir1.2-accountsservice-1.0 0.6.37-3+b1 ii gir1.2-atspi-2.0 2.14.0-1 ii gir1.2-caribou-1.0 0.4.15-1 ii gir1.2-clutter-1.0 1.20.0-1 ii gir1.2-freedesktop 1.42.0-2.2 ii gir1.2-gcr-3 3.14.0-2 ii gir1.2-gdesktopenums-3.0 3.14.1-1 ii gir1.2-gdm3 3.14.1-7 ii gir1.2-gkbd-3.0 3.6.0-1 ii gir1.2-glib-2.0 1.42.0-2.2 ii gir1.2-gnomebluetooth-1.0 3.14.0-2 ii gir1.2-gnomedesktop-3.0 3.14.1-1 ii gir1.2-gtk-3.0 3.14.5-1 ii gir1.2-ibus-1.0 1.5.9-1 ii gir1.2-mutter-3.0 3.14.2-1 ii gir1.2-networkmanager-1.0 0.9.10.0-7 ii gir1.2-nmgtk-1.0 0.9.10.0-2 ii gir1.2-pango-1.0 1.36.8-3 ii gir1.2-polkit-1.0 0.105-8 ii gir1.2-soup-2.4 2.48.0-1 ii gir1.2-telepathyglib-0.12 0.24.1-1 ii gir1.2-telepathylogger-0.2 0.8.1-1 ii gir1.2-upowerglib-1.0 0.99.1-3.2 ii gjs 1.42.0-1 ii gnome-backgrounds 3.14.1-1 ii gnome-icon-theme-symbolic 3.12.0-1 ii gnome-settings-daemon 3.14.2-3 ii gnome-shell-common 3.14.2-3 ii gnome-themes-standard 3.14.2.2-1 ii gsettings-desktop-schemas 3.14.1-1 ii libatk-bridge2.0-0 2.14.0-2 ii libatk1.0-0 2.14.0-1 ii libc6 2.19-18 ii libcairo2 1.14.0-2.1 ii libcanberra-gtk3-0 0.30-2.1 ii libcanberra0 0.30-2.1 ii libclutter-1.0-0 1.20.0-1 ii libcogl-pango20 1.18.2-3 ii libcogl20 1.18.2-3 ii libcroco3 0.6.8-3+b1 ii libdbus-glib-1-2 0.102-1 ii libecal-1.2-16 3.12.9~git20141128.5242b0-2+deb8u2 ii libedataserver-1.2-18 3.12.9~git20141128.5242b0-2+deb8u2 ii libgcr-base-3-1 3.14.0-2 ii libgdk-pixbuf2.0-0 2.31.1-2+b1 ii libgirepository-1.0-1 1.42.0-2.2 ii libgjs0e [libgjs0-libmozjs-24-0] 1.42.0-1 ii libglib2.0-0 2.42.1-1 ii libgstreamer1.0-0 1.4.4-2 ii libgtk-3-0 3.14.5-1 ii libical1a 1.0-1.3 ii libjson-glib-1.0-0 1.0.2-1 ii libmozjs-24-0 24.2.0-2 ii libmutter0e 3.14.2-1 ii libnm-glib4 0.9.10.0-7 ii libnm-util2 0.9.10.0-7 ii libpango-1.0-0 1.36.8-3 ii libpangocairo-1.0-0 1.36.8-3 ii libpolkit-agent-1-0 0.105-8 ii libpolkit-gobject-1-0 0.105-8 ii libpulse-mainloop-glib0 5.0-13 ii libpulse0 5.0-13 ii libsecret-1-0 0.18-1+b1 ii libstartup-notification0 0.12-4 ii libsystemd0 215-17 ii libtelepathy-glib0 0.24.1-1 ii libx11-6 2:1.6.2-3 ii libxfixes3 1:5.0.1-2+b2 ii mutter 3.14.2-1 ii python 2.7.9-1 ii telepathy-mission-control-5 1:5.16.3-1 Versions of packages gnome-shell recommends: ii gdm3 3.14.1-7 ii gkbd-capplet 3.6.0-1 ii gnome-contacts 3.14.1-1 ii gnome-control-center 1:3.14.2-3 ii gnome-user-guide 3.14.1-1 ii unzip 6.0-16 gnome-shell suggests no packages. -- no debconf information
--- a/js/gdm/loginDialog.js +++ a/js/gdm/loginDialog.js @@ -472,6 +472,11 @@ const LoginDialog = new Lang.Class({ this._disableUserList = undefined; this._userListLoaded = false; + this._nextSignalId = 0; + + this._realmManager = new Realmd.Manager(); + this._realmSignalId = this._realmManager.connect('login-format-changed', + Lang.bind(this, this._showRealmLoginHint)); LoginManager.getLoginManager().getCurrentSessionProxy(Lang.bind(this, this._gotGreeterSessionProxy)); @@ -620,14 +625,14 @@ const LoginDialog = new Lang.Class({ this._authPrompt.setPasswordChar(''); this._authPrompt.setQuestion(_("Username: ")); - let realmManager = new Realmd.Manager(); - let realmSignalId = realmManager.connect('login-format-changed', - Lang.bind(this, this._showRealmLoginHint)); - this._showRealmLoginHint(realmManager.loginFormat); + this._showRealmLoginHint(this._realmManager.loginFormat); - let nextSignalId = this._authPrompt.connect('next', + if (this._nextSignalId) + this._authPrompt.disconnect(this._nextSignalId); + this._nextSignalId = this._authPrompt.connect('next', Lang.bind(this, function() { - this._authPrompt.disconnect(nextSignalId); + this._authPrompt.disconnect(this._nextSignalId); + this._nextSignalId = 0; this._authPrompt.updateSensitivity(false); let answer = this._authPrompt.getAnswer(); this._user = this._userManager.get_user(answer); @@ -635,9 +640,6 @@ const LoginDialog = new Lang.Class({ this._authPrompt.startSpinning(); this._authPrompt.begin({ userName: answer }); this._updateCancelButton(); - - realmManager.disconnect(realmSignalId) - realmManager.release(); })); this._updateCancelButton(); this._showPrompt(); @@ -892,6 +894,11 @@ const LoginDialog = new Lang.Class({ this._userManager.disconnect(this._userManagerLoadedId); this._userManagerLoadedId = 0; } + if (this._realmManager) { + this._realmManager.disconnect(this._realmSignalId); + this._realmSignalId = 0; + this._realmManager.release(); + } }, _loadUserList: function() {
--- a/js/gdm/loginDialog.js +++ a/js/gdm/loginDialog.js @@ -472,6 +472,11 @@ const LoginDialog = new Lang.Class({ this._disableUserList = undefined; this._userListLoaded = false; + this._nextSignalId = 0; + + this._realmManager = new Realmd.Manager(); + this._realmSignalId = this._realmManager.connect('login-format-changed', + Lang.bind(this, this._showRealmLoginHint)); LoginManager.getLoginManager().getCurrentSessionProxy(Lang.bind(this, this._gotGreeterSessionProxy)); @@ -620,14 +625,14 @@ const LoginDialog = new Lang.Class({ this._authPrompt.setPasswordChar(''); this._authPrompt.setQuestion(_("Username: ")); - let realmManager = new Realmd.Manager(); - let realmSignalId = realmManager.connect('login-format-changed', - Lang.bind(this, this._showRealmLoginHint)); - this._showRealmLoginHint(realmManager.loginFormat); + this._showRealmLoginHint(this._realmManager.loginFormat); - let nextSignalId = this._authPrompt.connect('next', + if (this._nextSignalId) + this._authPrompt.disconnect(this._nextSignalId); + this._nextSignalId = this._authPrompt.connect('next', Lang.bind(this, function() { - this._authPrompt.disconnect(nextSignalId); + this._authPrompt.disconnect(this._nextSignalId); + this._nextSignalId = 0; this._authPrompt.updateSensitivity(false); let answer = this._authPrompt.getAnswer(); this._user = this._userManager.get_user(answer); @@ -635,9 +640,6 @@ const LoginDialog = new Lang.Class({ this._authPrompt.startSpinning(); this._authPrompt.begin({ userName: answer }); this._updateCancelButton(); - - realmManager.disconnect(realmSignalId) - realmManager.release(); })); this._updateCancelButton(); this._showPrompt(); @@ -892,6 +894,11 @@ const LoginDialog = new Lang.Class({ this._userManager.disconnect(this._userManagerLoadedId); this._userManagerLoadedId = 0; } + if (this._realmManager) { + this._realmManager.disconnect(this._realmSignalId); + this._realmSignalId = 0; + this._realmManager.release(); + } }, _loadUserList: function() {