diff options
author | Alan Dunn <amdunn@gmail.com> | 2014-01-21 08:19:31 -0600 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-01-21 16:08:12 +0100 |
commit | f78a74c1604af229bf0d5dacdb4aa6a98c6a1560 (patch) | |
tree | d10970b067f71999cd0b0280673596aff0e885b2 | |
parent | b3b3045a816ab750ae37273f6cb1ab60062d5b6e (diff) | |
download | libssh-f78a74c1604af229bf0d5dacdb4aa6a98c6a1560.tar.gz libssh-f78a74c1604af229bf0d5dacdb4aa6a98c6a1560.tar.xz libssh-f78a74c1604af229bf0d5dacdb4aa6a98c6a1560.zip |
Import keys during ssh_bind_accept_fd
Signed-off-by: Alan Dunn <amdunn@gmail.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | src/bind.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -382,7 +382,7 @@ void ssh_bind_free(ssh_bind sshbind){ } int ssh_bind_accept_fd(ssh_bind sshbind, ssh_session session, socket_t fd){ - int i; + int i, rc; if (session == NULL){ ssh_set_error(sshbind, SSH_FATAL,"session is null"); @@ -424,6 +424,16 @@ int ssh_bind_accept_fd(ssh_bind sshbind, ssh_session session, socket_t fd){ ssh_socket_set_fd(session->socket, fd); ssh_socket_get_poll_handle_out(session->socket); + /* We must try to import any keys that could be imported in case + * we are not using ssh_bind_listen (which is the other place + * where keys can be imported) on this ssh_bind and are instead + * only using ssh_bind_accept_fd to manage sockets ourselves. + */ + rc = ssh_bind_import_keys(sshbind); + if (rc != SSH_OK) { + return SSH_ERROR; + } + #ifdef HAVE_ECC if (sshbind->ecdsa) { session->srv.ecdsa_key = ssh_key_dup(sshbind->ecdsa); |