diff options
-rw-r--r-- | examples/connect_ssh.c | 6 | ||||
-rw-r--r-- | examples/exec.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/examples/connect_ssh.c b/examples/connect_ssh.c index 90a2f34c..c9e4ef6e 100644 --- a/examples/connect_ssh.c +++ b/examples/connect_ssh.c @@ -32,22 +32,25 @@ ssh_session connect_ssh(const char *host, const char *user,int verbosity){ if(user != NULL){ if (ssh_options_set(session, SSH_OPTIONS_USER, user) < 0) { - ssh_disconnect(session); + ssh_free(session); return NULL; } } if (ssh_options_set(session, SSH_OPTIONS_HOST, host) < 0) { + ssh_free(session); return NULL; } ssh_options_set(session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity); if(ssh_connect(session)){ fprintf(stderr,"Connection failed : %s\n",ssh_get_error(session)); ssh_disconnect(session); + ssh_free(session); return NULL; } if(verify_knownhost(session)<0){ ssh_disconnect(session); + ssh_free(session); return NULL; } auth=authenticate_console(session); @@ -59,5 +62,6 @@ ssh_session connect_ssh(const char *host, const char *user,int verbosity){ fprintf(stderr,"Error while authenticating : %s\n",ssh_get_error(session)); } ssh_disconnect(session); + ssh_free(session); return NULL; } diff --git a/examples/exec.c b/examples/exec.c index 03d5d4b3..bbfdf0e4 100644 --- a/examples/exec.c +++ b/examples/exec.c @@ -13,6 +13,7 @@ int main(void) { session = connect_ssh("localhost", NULL, 0); if (session == NULL) { + ssh_finalize(); return 1; } @@ -20,6 +21,7 @@ int main(void) { if (channel == NULL) { ssh_disconnect(session); ssh_free(session); + ssh_finalize(); return 1; } @@ -49,6 +51,7 @@ int main(void) { ssh_channel_close(channel); ssh_channel_free(channel); ssh_free(session); + ssh_finalize(); return 0; failed: @@ -56,6 +59,7 @@ failed: ssh_channel_free(channel); ssh_disconnect(session); ssh_free(session); + ssh_finalize(); return 1; } |