From efc7477ef5b25b8886bc0ee7bd9cb0f28dcd2b16 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 12 Nov 2013 12:20:09 -0800 Subject: [PATCH] Free stream data. Delete file after opening for download. --- src/protocols/rdp/guac_handlers.c | 2 ++ src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/protocols/rdp/guac_handlers.c b/src/protocols/rdp/guac_handlers.c index 230b5fbe..e8c4e50e 100644 --- a/src/protocols/rdp/guac_handlers.c +++ b/src/protocols/rdp/guac_handlers.c @@ -678,6 +678,7 @@ int rdp_guac_client_ack_handler(guac_client* client, guac_stream* stream, else if (bytes_read == 0) { guac_protocol_send_end(client->socket, stream); guac_client_free_stream(client, stream); + free(download); } /* Otherwise, fail stream */ @@ -685,6 +686,7 @@ int rdp_guac_client_ack_handler(guac_client* client, guac_stream* stream, guac_client_log_error(client, "Error reading file for download"); guac_protocol_send_end(client->socket, stream); guac_client_free_stream(client, stream); + free(download); } guac_socket_flush(client->socket); diff --git a/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages.c b/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages.c index ffd33604..d0a1cf5b 100644 --- a/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages.c +++ b/src/protocols/rdp/guac_rdpdr/rdpdr_fs_messages.c @@ -237,6 +237,7 @@ void guac_rdpdr_fs_process_close(guac_rdpdr_device* device, if (file_id >= 0) { guac_rdp_download_status* status; + char* basename; /* Associate stream with transfer status */ guac_stream* stream = guac_client_alloc_stream(client); @@ -244,8 +245,11 @@ void guac_rdpdr_fs_process_close(guac_rdpdr_device* device, status->file_id = file_id; status->offset = 0; + /* Delete file after opened */ + guac_rdp_fs_delete((guac_rdp_fs*) device->data, file_id); + /* Get basename from absolute path */ - char* basename = file->absolute_path; + basename = file->absolute_path; do { c = file->absolute_path[i];