Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan White <support@dmapps.us>2021-01-15 06:17:10 +0300
committerJanek Bevendorff <janek@jbev.net>2021-01-26 20:35:34 +0300
commita3b9700f90f0ad4a1308f8a8ec033a7c36cf0ec4 (patch)
treed1df29a0be8f1068c3bcc1ceaa78f6661496e1d4 /src/gui/DatabaseWidget.cpp
parent0d3d5db87cb9710bb1ed5496ea5f0d2cd79d3a95 (diff)
Fix unloading ssh keys on database lock
* Fix #5928 - SSH Agent keys are properly removed on database lock. Also fixes crash when keys are still loaded on application close. * Remove dependency on DatabaseWidget within SSH Agent.
Diffstat (limited to 'src/gui/DatabaseWidget.cpp')
-rw-r--r--src/gui/DatabaseWidget.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp
index 28d3aedd7..bb0a6ec41 100644
--- a/src/gui/DatabaseWidget.cpp
+++ b/src/gui/DatabaseWidget.cpp
@@ -214,13 +214,6 @@ DatabaseWidget::DatabaseWidget(QSharedPointer<Database> db, QWidget* parent)
m_EntrySearcher = new EntrySearcher(false);
m_searchLimitGroup = config()->get(Config::SearchLimitGroup).toBool();
-#ifdef WITH_XC_SSHAGENT
- if (sshAgent()->isEnabled()) {
- connect(this, SIGNAL(databaseLocked()), sshAgent(), SLOT(databaseLocked()));
- connect(this, SIGNAL(databaseUnlocked()), sshAgent(), SLOT(databaseUnlocked()));
- }
-#endif
-
#ifdef WITH_XC_KEESHARE
// We need to reregister the database to allow exports
// from a newly created database
@@ -1089,6 +1082,9 @@ void DatabaseWidget::loadDatabase(bool accepted)
m_entryBeforeLock = QUuid();
m_saveAttempts = 0;
emit databaseUnlocked();
+#ifdef WITH_XC_SSHAGENT
+ sshAgent()->databaseUnlocked(m_db);
+#endif
if (config()->get(Config::MinimizeAfterUnlock).toBool()) {
getMainWindow()->minimizeOrHide();
}
@@ -1176,6 +1172,10 @@ void DatabaseWidget::unlockDatabase(bool accepted)
processAutoOpen();
emit databaseUnlocked();
+#ifdef WITH_XC_SSHAGENT
+ sshAgent()->databaseUnlocked(m_db);
+#endif
+
if (senderDialog && senderDialog->intent() == DatabaseOpenDialog::Intent::AutoType) {
QList<QSharedPointer<Database>> dbList;
dbList.append(m_db);
@@ -1597,6 +1597,10 @@ bool DatabaseWidget::lock()
m_entryBeforeLock = currentEntry->uuid();
}
+#ifdef WITH_XC_SSHAGENT
+ sshAgent()->databaseLocked(m_db);
+#endif
+
endSearch();
clearAllWidgets();
switchToOpenDatabase(m_db->filePath());