diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2013-06-02 18:40:13 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-07-13 15:01:17 +0200 |
commit | 31a129ee9e0626d3230bea46d93bde2e2738119c (patch) | |
tree | 0346b0e26898b1a74745f04b62e12fd00a0d1cfe /src/sftpserver.c | |
parent | 7e7910a1ca35c069864bafc200d7ba593a73a1f2 (diff) | |
download | libssh-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.c | 8 |
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); } |