diff --git a/ssh/kexecdhc.c b/ssh/kexecdhc.c index 09ff254..b8996f4 100644 --- a/ssh/kexecdhc.c +++ b/ssh/kexecdhc.c @@ -185,7 +185,7 @@ input_kex_ecdh_reply(int type, u_int32_t seq, struct ssh *ssh) if ((r = sshkey_verify(server_host_key, signature, slen, hash, hashlen, datafellows)) != 0) - fatal("key_verify failed for server_host_key: %s", ssh_err(r)); + goto out; /* save session id */ if (kex->session_id == NULL) { diff --git a/ssh/kexecdhs.c b/ssh/kexecdhs.c index 06ff56f..3dc24fb 100644 --- a/ssh/kexecdhs.c +++ b/ssh/kexecdhs.c @@ -169,9 +169,9 @@ input_kex_ecdh_init(int type, u_int32_t seq, struct ssh *ssh) } /* sign H */ - if (PRIVSEP(sshkey_sign(server_host_private, &signature, &slen, - hash, hashlen, datafellows)) < 0) - fatal("kexdh_server: sshkey_sign failed"); + if ((r = PRIVSEP(sshkey_sign(server_host_private, &signature, &slen, + hash, hashlen, datafellows))) < 0) + goto out; /* destroy_sensitive_data(); */