SSH Agent: Skip cert removal if writeCertificate() fails

Avoid sending invalid SSH_AGENTC_REMOVE_IDENTITY to agent when KeePassXC
cannot read the certificate data itself.

Prevents malformed removal requests for unreadable certificates.
This commit is contained in:
Alexandre Petit 2026-03-09 17:00:06 +01:00
parent 3f497f2eed
commit fb0b003aaa
No known key found for this signature in database

View file

@ -422,15 +422,16 @@ bool SSHAgent::removeIdentity(OpenSSHKey& key)
QByteArray certificateData;
BinaryStream certificateStream(&certificateData);
key.writeCertificate(certificateStream, false);
if (key.writeCertificate(certificateStream, false)) {
requestCertificate.write(SSH_AGENTC_REMOVE_IDENTITY);
requestCertificate.write(certificateData);
QByteArray responseCertificateData;
requestCertificate.write(SSH_AGENTC_REMOVE_IDENTITY);
requestCertificate.write(certificateData);
return (sendMessage(requestData, responseData) &&
sendMessage(requestCertificateData, responseCertificateData));
}
QByteArray responseCertificateData;
return (sendMessage(requestData, responseData) &&
sendMessage(requestCertificateData, responseCertificateData));
return (sendMessage(requestData, responseData));
}
/**