diff --git a/client/core/sshclient.cpp b/client/core/sshclient.cpp index 4c2a9591..4e557645 100644 --- a/client/core/sshclient.cpp +++ b/client/core/sshclient.cpp @@ -352,16 +352,18 @@ namespace libssh { m_passphraseCallback = passphraseCallback; authResult = ssh_pki_import_privkey_base64(credentials.password.toStdString().c_str(), nullptr, callback, nullptr, &privateKey); if (authResult == SSH_OK) { - char* key = new char[65535]; + char *b64 = nullptr; - authResult = ssh_pki_export_privkey_base64(privateKey, nullptr, nullptr, nullptr, &key); - decryptedPrivateKey = key; - delete[] key; + authResult = ssh_pki_export_privkey_base64(privateKey, nullptr, nullptr, nullptr, &b64); + decryptedPrivateKey = QString(b64); if (authResult != SSH_OK) { qDebug() << "failed to export private key"; errorCode = ErrorCode::InternalError; } + else { + ssh_string_free_char(b64); + } } else { errorCode = ErrorCode::SshPrivateKeyError; }