From 499467d362021a147c9ea3d5083881feb2e42696 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sun, 13 Feb 2011 10:43:59 +0100 Subject: auth: Fixed a double free error. --- src/auth.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/auth.c b/src/auth.c index 8327a17..e0b3a7d 100644 --- a/src/auth.c +++ b/src/auth.c @@ -748,13 +748,19 @@ int ssh_userauth_pubkey(ssh_session session, const char *username, ssh_string_free(pkstr); sign = ssh_do_sign(session,session->out_buffer, privatekey); - if(sign == NULL) + if(sign == NULL) { ssh_set_error_oom(session); - goto error; + leave_function(); + return rc; + } + if (buffer_add_ssh_string(session->out_buffer,sign) < 0) { ssh_set_error_oom(session); - goto error; + ssh_string_free(sign); + leave_function(); + return rc; } + ssh_string_free(sign); session->auth_state=SSH_AUTH_STATE_NONE; session->pending_call_state=SSH_PENDING_CALL_AUTH_PUBKEY; -- cgit v1.2.3