aboutsummaryrefslogtreecommitdiff
path: root/src/agent.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-06-19 12:19:05 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-06-19 12:19:05 +0200
commitf0a362fdbe525cd938efaf0ff9afab3903e82cdf (patch)
treee7f304558a67c99eee487369d77cef7dd6bd85ee /src/agent.c
parentde4cb811a0fd9ee7e0e56161fdecfe2ba5ce415f (diff)
downloadlibssh-f0a362fdbe525cd938efaf0ff9afab3903e82cdf.tar.gz
libssh-f0a362fdbe525cd938efaf0ff9afab3903e82cdf.tar.xz
libssh-f0a362fdbe525cd938efaf0ff9afab3903e82cdf.zip
agent: Fix possible memory leak.
Diffstat (limited to 'src/agent.c')
-rw-r--r--src/agent.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/agent.c b/src/agent.c
index 95cf6a12..897641b1 100644
--- a/src/agent.c
+++ b/src/agent.c
@@ -287,9 +287,14 @@ int ssh_agent_get_ident_count(struct ssh_session_struct *session) {
/* send message to the agent requesting the list of identities */
request = ssh_buffer_new();
+ if (request == NULL) {
+ ssh_set_error_oom(request);
+ return -1;
+ }
if (buffer_add_u8(request, c1) < 0) {
- ssh_set_error(session, SSH_FATAL, "Not enough space");
- return -1;
+ ssh_set_error_oom(request);
+ ssh_buffer_free(request);
+ return -1;
}
reply = ssh_buffer_new();