From 5d231425998aca6af38045cd94a09986d79adb5d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 27 Apr 2009 11:33:37 +0000 Subject: Improve sftp_client_message_free. git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@621 7dcaeef0-15fb-0310-b436-a5af3365683c --- libssh/sftpserver.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/libssh/sftpserver.c b/libssh/sftpserver.c index 2fe415bb..51c21176 100644 --- a/libssh/sftpserver.c +++ b/libssh/sftpserver.c @@ -211,16 +211,17 @@ SFTP_CLIENT_MESSAGE *sftp_get_client_message(SFTP_SESSION *sftp) { } void sftp_client_message_free(SFTP_CLIENT_MESSAGE *msg) { - if(msg->filename) - free(msg->filename); - if(msg->data) - free(msg->data); - if(msg->attr) - sftp_attributes_free(msg->attr); - if(msg->handle) - free(msg->handle); - memset(msg,'X',sizeof(*msg)); - free(msg); + if (msg == NULL) { + return; + } + + SAFE_FREE(msg->filename); + string_free(msg->data); + string_free(msg->handle); + sftp_attributes_free(msg->attr); + + ZERO_STRUCTP(msg); + SAFE_FREE(msg); } int sftp_reply_name(SFTP_CLIENT_MESSAGE *msg, char *name, SFTP_ATTRIBUTES *attr){ -- cgit v1.2.3