summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-22 15:09:54 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-22 15:09:54 +0000
commit8a3c417e14e1b4ae65bfc4941816ea511926265f (patch)
treeac643dd4c0151967e632b941ea6ba41346fd48cc
parente6c01555670c6a5f8dc68ea66be3bb3d0477f642 (diff)
downloadlibssh-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.c21
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){