diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2012-10-08 21:16:56 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2012-10-12 08:07:02 +0200 |
commit | 802e4133cb58ac2519604abc92de08b4bf525635 (patch) | |
tree | 83cc17eb1611b3d3b640fa890fed7b2dcf15fc16 /src/session.c | |
parent | dde3deb9ea1656277452b8108000c982195af415 (diff) | |
download | libssh-802e4133cb58ac2519604abc92de08b4bf525635.tar.gz libssh-802e4133cb58ac2519604abc92de08b4bf525635.tar.xz libssh-802e4133cb58ac2519604abc92de08b4bf525635.zip |
session: Don't leak memory in ssh_send_debug().
Found by Coverity.
Diffstat (limited to 'src/session.c')
-rw-r--r-- | src/session.c | 8 |
1 files 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; |