aboutsummaryrefslogtreecommitdiff
path: root/libssh/session.c
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-01 20:18:31 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-01 20:18:31 +0000
commitb06c167775ec3aac00ba52935c07ce4b1520721b (patch)
treee525a0580437bc7e0e9926e9228f3671e7d2d40d /libssh/session.c
parentace6eed6c0c5e3493c58106cc0e698b92b7835f6 (diff)
downloadlibssh-b06c167775ec3aac00ba52935c07ce4b1520721b.tar.gz
libssh-b06c167775ec3aac00ba52935c07ce4b1520721b.tar.xz
libssh-b06c167775ec3aac00ba52935c07ce4b1520721b.zip
Fix memory error checking in socket functions.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@328 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/session.c')
-rw-r--r--libssh/session.c9
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){