aboutsummaryrefslogtreecommitdiff
path: root/src/sftpserver.c
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2013-06-02 18:40:13 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-07-13 15:01:17 +0200
commit31a129ee9e0626d3230bea46d93bde2e2738119c (patch)
tree0346b0e26898b1a74745f04b62e12fd00a0d1cfe /src/sftpserver.c
parent7e7910a1ca35c069864bafc200d7ba593a73a1f2 (diff)
downloadlibssh-31a129ee9e0626d3230bea46d93bde2e2738119c.tar.gz
libssh-31a129ee9e0626d3230bea46d93bde2e2738119c.tar.xz
libssh-31a129ee9e0626d3230bea46d93bde2e2738119c.zip
sftp: more flexibility on channels
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/sftpserver.c')
-rw-r--r--src/sftpserver.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/sftpserver.c b/src/sftpserver.c
index 431d1d82..0986b6ce 100644
--- a/src/sftpserver.c
+++ b/src/sftpserver.c
@@ -263,9 +263,10 @@ void sftp_client_message_set_filename(sftp_client_message msg, const char *newna
msg->filename = strdup(newname);
}
-char *sftp_client_message_get_data(sftp_client_message msg){
- char *str = ssh_string_to_char(msg->data);
- return str;
+const char *sftp_client_message_get_data(sftp_client_message msg){
+ if (msg->str_data == NULL)
+ msg->str_data = ssh_string_to_char(msg->data);
+ return msg->str_data;
}
uint32_t sftp_client_message_get_flags(sftp_client_message msg){
@@ -282,6 +283,7 @@ void sftp_client_message_free(sftp_client_message msg) {
ssh_string_free(msg->handle);
sftp_attributes_free(msg->attr);
ssh_buffer_free(msg->complete_message);
+ SAFE_FREE(msg->str_data);
ZERO_STRUCTP(msg);
SAFE_FREE(msg);
}