[Telepathy-commits] [telepathy-salut/master] gibber-oob-file-transfer: copy the AppleSingle header using g_malloc so libsoup will properly free the memory once it's written
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Fri Nov 28 04:35:39 PST 2008
---
lib/gibber/gibber-oob-file-transfer.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/lib/gibber/gibber-oob-file-transfer.c b/lib/gibber/gibber-oob-file-transfer.c
index 570a93e..ffae15e 100644
--- a/lib/gibber/gibber-oob-file-transfer.c
+++ b/lib/gibber/gibber-oob-file-transfer.c
@@ -558,6 +558,7 @@ http_server_cb (SoupServerContext *context,
guint32 uint32;
guint16 uint16;
GByteArray *array;
+ gchar *buff;
DEBUG ("Using AppleSingle encoding");
@@ -591,8 +592,14 @@ http_server_cb (SoupServerContext *context,
soup_message_add_header (msg->response_headers, "Content-encoding",
"AppleSingle");
- soup_message_add_chunk (self->priv->msg, SOUP_BUFFER_STATIC,
- (char *) array->data, array->len);
+ /* copy the bytes array using g_malloc as libsoup will have to free it
+ * once it's written. */
+
+ buff = g_malloc (array->len);
+ memcpy (buff, array->data, array->len);
+
+ soup_message_add_chunk (self->priv->msg, SOUP_BUFFER_SYSTEM_OWNED,
+ buff, array->len);
soup_message_io_unpause (self->priv->msg);
g_byte_array_free (array, TRUE);
--
1.5.6.5
More information about the Telepathy-commits
mailing list