diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-22 15:09:54 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-22 15:09:54 +0000 |
commit | 8a3c417e14e1b4ae65bfc4941816ea511926265f (patch) | |
tree | ac643dd4c0151967e632b941ea6ba41346fd48cc | |
parent | e6c01555670c6a5f8dc68ea66be3bb3d0477f642 (diff) | |
download | libssh-8a3c417e14e1b4ae65bfc4941816ea511926265f.tar.gz libssh-8a3c417e14e1b4ae65bfc4941816ea511926265f.tar.xz libssh-8a3c417e14e1b4ae65bfc4941816ea511926265f.zip |
Improve sftp_message_free().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@575 7dcaeef0-15fb-0310-b436-a5af3365683c
-rw-r--r-- | libssh/sftp.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/libssh/sftp.c b/libssh/sftp.c index d3b0675..abbaaf4 100644 --- a/libssh/sftp.c +++ b/libssh/sftp.c @@ -305,13 +305,20 @@ static SFTP_MESSAGE *sftp_message_new(SFTP_SESSION *sftp){ return msg; } -static void sftp_message_free(SFTP_MESSAGE *msg){ - SFTP_SESSION *sftp=msg->sftp; - sftp_enter_function(); - if(msg->payload) - buffer_free(msg->payload); - free(msg); - sftp_leave_function(); +static void sftp_message_free(SFTP_MESSAGE *msg) { + SFTP_SESSION *sftp; + + if (msg == NULL) { + return; + } + + sftp = msg->sftp; + sftp_enter_function(); + + buffer_free(msg->payload); + SAFE_FREE(msg); + + sftp_leave_function(); } static SFTP_MESSAGE *sftp_get_message(SFTP_PACKET *packet){ |