summaryrefslogtreecommitdiffstats
path: root/libssh/server.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/server.c')
-rw-r--r--libssh/server.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/libssh/server.c b/libssh/server.c
index b534a90..349e910 100644
--- a/libssh/server.c
+++ b/libssh/server.c
@@ -252,12 +252,18 @@ SSH_SESSION *ssh_bind_accept(SSH_BIND *ssh_bind) {
}
void ssh_bind_free(SSH_BIND *ssh_bind){
- if(ssh_bind->bindfd>=0)
- close(ssh_bind->bindfd);
- ssh_bind->bindfd=-1;
- if(ssh_bind->options)
- ssh_options_free(ssh_bind->options);
- free(ssh_bind);
+ if (ssh_bind == NULL) {
+ return;
+ }
+
+ if (ssh_bind->bindfd >= 0) {
+ close(ssh_bind->bindfd);
+ }
+ ssh_bind->bindfd = -1;
+ if (ssh_bind->options) {
+ ssh_options_free(ssh_bind->options);
+ }
+ SAFE_FREE(ssh_bind);
}
extern char *supported_methods[];