diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-09-15 22:35:16 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2011-09-18 20:34:15 +0200 |
commit | 1b10b175fcd5c6f205168434cc5f6aca51b1d298 (patch) | |
tree | 236262411cba8635b665a4738dd358f231dd3fda | |
parent | 8f1161f64968b6df250e0b3f3b0f952ccdcf85ad (diff) | |
download | libssh-1b10b175fcd5c6f205168434cc5f6aca51b1d298.tar.gz libssh-1b10b175fcd5c6f205168434cc5f6aca51b1d298.tar.xz libssh-1b10b175fcd5c6f205168434cc5f6aca51b1d298.zip |
dh: fix segfault in server
-rw-r--r-- | src/dh.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -686,11 +686,16 @@ int make_sessionid(ssh_session session) { ssh_string_free(num); #ifdef HAVE_ECDH - } else if (session->next_crypto->kex_type == SSH_KEX_ECDH_SHA2_NISTP256){ + } else if (session->next_crypto->kex_type == SSH_KEX_ECDH_SHA2_NISTP256){ + if(session->next_crypto->ecdh_client_pubkey == NULL || + session->next_crypto->ecdh_server_pubkey == NULL){ + ssh_log(session,SSH_LOG_WARNING,"ECDH parameted missing"); + goto error; + } buffer_add_ssh_string(buf,session->next_crypto->ecdh_client_pubkey); buffer_add_ssh_string(buf,session->next_crypto->ecdh_server_pubkey); #endif - } + } num = make_bignum_string(session->next_crypto->k); if (num == NULL) { goto error; |