summaryrefslogtreecommitdiffstats
path: root/libssh/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/server.c')
-rw-r--r--libssh/server.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libssh/server.c b/libssh/server.c
index ef45e6a..65903de 100644
--- a/libssh/server.c
+++ b/libssh/server.c
@@ -186,6 +186,14 @@ SSH_SESSION *ssh_bind_accept(SSH_BIND *ssh_bind){
ssh_socket_free(session->socket);
session->socket=ssh_socket_new(session);
+ if (session->socket == NULL) {
+ if (dsa)
+ private_key_free(dsa);
+ if (rsa)
+ private_key_free(rsa);
+ ssh_cleanup(session);
+ return NULL;
+ }
ssh_socket_set_fd(session->socket,fd);
session->dsa_key=dsa;
session->rsa_key=rsa;