diff options
Diffstat (limited to 'libssh/session.c')
-rw-r--r-- | libssh/session.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libssh/session.c b/libssh/session.c index 0feaabc..1ba30d8 100644 --- a/libssh/session.c +++ b/libssh/session.c @@ -52,9 +52,16 @@ SSH_SESSION *ssh_new(void) { session->out_buffer=buffer_new(); session->in_buffer=buffer_new(); #ifndef _WIN32 - session->agent=agent_new(session); + session->agent = agent_new(session); + if (session->agent == NULL) { + goto err; + } #endif /* _WIN32 */ return session; + +err: + ssh_cleanup(session); + return NULL; } void ssh_cleanup(SSH_SESSION *session){ |