From 802e4133cb58ac2519604abc92de08b4bf525635 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 8 Oct 2012 21:16:56 +0200 Subject: [PATCH] session: Don't leak memory in ssh_send_debug(). Found by Coverity. --- src/session.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/session.c b/src/session.c index 34c01989..5a7a07c3 100644 --- a/src/session.c +++ b/src/session.c @@ -673,6 +673,7 @@ error: */ int ssh_send_debug (ssh_session session, const char *message, int always_display) { ssh_string str; + int rc; if (ssh_socket_is_open(session->socket)) { if (buffer_add_u8(session->out_buffer, SSH2_MSG_DEBUG) < 0) { @@ -688,8 +689,9 @@ int ssh_send_debug (ssh_session session, const char *message, int always_display goto error; } - if (buffer_add_ssh_string(session->out_buffer,str) < 0) { - ssh_string_free(str); + rc = buffer_add_ssh_string(session->out_buffer, str); + ssh_string_free(str); + if (rc < 0) { goto error; } @@ -700,8 +702,6 @@ int ssh_send_debug (ssh_session session, const char *message, int always_display packet_send(session); ssh_handle_packets(session, 0); - - ssh_string_free(str); } return SSH_OK;