diff options
| -rw-r--r-- | changes/bug-2640_app-crash-on-wrong-keyring-password | 1 | ||||
| -rw-r--r-- | src/leap/gui/mainwindow.py | 15 | 
2 files changed, 12 insertions, 4 deletions
| diff --git a/changes/bug-2640_app-crash-on-wrong-keyring-password b/changes/bug-2640_app-crash-on-wrong-keyring-password new file mode 100644 index 00000000..eaee4f40 --- /dev/null +++ b/changes/bug-2640_app-crash-on-wrong-keyring-password @@ -0,0 +1 @@ +  o Handle 'Incorrect Password' exception (keyring) diff --git a/src/leap/gui/mainwindow.py b/src/leap/gui/mainwindow.py index d51ec3c8..3e8a1c83 100644 --- a/src/leap/gui/mainwindow.py +++ b/src/leap/gui/mainwindow.py @@ -370,15 +370,22 @@ class MainWindow(QtGui.QMainWindow):                  self.ui.chkRemember.setChecked(True)                  self.ui.chkAutoLogin.setEnabled(self.ui.chkRemember                                                  .isEnabled()) -                saved_password = keyring.get_password(self.KEYRING_KEY, -                                                      saved_user -                                                      .encode("utf8")) + +                saved_password = None +                try: +                    saved_password = keyring.get_password(self.KEYRING_KEY, +                                                          saved_user +                                                          .encode("utf8")) +                except ValueError, e: +                    logger.debug("Incorrect Password. %r." % (e,)) +                  if saved_password is not None:                      self.ui.lnPassword.setText(saved_password.decode("utf8"))                  # Only automatically login if there is a saved user +                # and the password was retrieved right                  self.ui.chkAutoLogin.setChecked(auto_login) -                if auto_login: +                if auto_login and saved_password:                      self._login()      def _show_systray(self): | 
