From 963bbd0c1731f74fbd422661f6053d19569aaf3e Mon Sep 17 00:00:00 2001 From: Alexandre Petit <62973006+AlexpFr@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:27:41 +0100 Subject: [PATCH] SSH Agent: Track keys immediately after successful add Move m_addedKeys insertion after key add success but before optional cert add. Ensures keys are always tracked (and auto-removed) even if cert fails. --- src/sshagent/SSHAgent.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sshagent/SSHAgent.cpp b/src/sshagent/SSHAgent.cpp index a9c54374c..44619b1c6 100644 --- a/src/sshagent/SSHAgent.cpp +++ b/src/sshagent/SSHAgent.cpp @@ -330,6 +330,10 @@ bool SSHAgent::addIdentity(OpenSSHKey& key, const KeeAgentSettings& settings, co return false; } + OpenSSHKey keyCopy = key; + keyCopy.clearPrivate(); + m_addedKeys[keyCopy] = qMakePair(databaseUuid, settings.removeAtDatabaseClose()); + if (settings.useCertificate()) { QByteArray requestCertificateData; BinaryStream requestCertificate(&requestCertificateData); @@ -384,9 +388,6 @@ bool SSHAgent::addIdentity(OpenSSHKey& key, const KeeAgentSettings& settings, co } } - OpenSSHKey keyCopy = key; - keyCopy.clearPrivate(); - m_addedKeys[keyCopy] = qMakePair(databaseUuid, settings.removeAtDatabaseClose()); return true; }