From 78ad279a43a27a4a780ebefde3a4bfbde0091535 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 29 Apr 2009 11:55:43 +0000 Subject: Improve ssh_bind_free(). git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@653 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/server.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'libssh/server.c') 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[]; -- cgit