summaryrefslogtreecommitdiffstats
path: root/libssh/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/server.c')
-rw-r--r--libssh/server.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/libssh/server.c b/libssh/server.c
index 2a8ba33..96acb5b 100644
--- a/libssh/server.c
+++ b/libssh/server.c
@@ -251,12 +251,16 @@ ssh_session ssh_bind_accept(SSH_BIND *sshbind) {
}
}
- session->bindaddr = strdup(sshbind->bindaddr);
- if (session->bindaddr == NULL) {
- privatekey_free(dsa);
- privatekey_free(rsa);
- ssh_cleanup(session);
- return NULL;
+ if (sshbind->bindaddr == NULL)
+ session->bindaddr = NULL;
+ else {
+ session->bindaddr = strdup(sshbind->bindaddr);
+ if (session->bindaddr == NULL) {
+ privatekey_free(dsa);
+ privatekey_free(rsa);
+ ssh_cleanup(session);
+ return NULL;
+ }
}
ssh_socket_free(session->socket);