Diff between 4e5782eb001abfa9d124450234759f60a124b99e and 0dff3b37bebf5f7cf896a69fc567394b55b1c68f

Changed Files

File Additions Deletions Status
obexd/client/transfer.c +9 -3 modified
obexd/client/transfer.h +1 -1 modified

Full Patch

diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index 373e4e4..b85f2fb 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
@@ -158,7 +158,11 @@ static void transfer_free(struct transfer_data *transfer)
 
 	session_unref(session);
 
-	g_free(transfer->params);
+	if (transfer->params != NULL) {
+		g_free(transfer->params->data);
+		g_free(transfer->params);
+	}
+
 	g_free(transfer->callback);
 	g_free(transfer->filename);
 	g_free(transfer->name);
@@ -251,7 +255,8 @@ static void get_xfer_listing_progress(GwObexXfer *xfer,
 		bsize = transfer->buffer_len - transfer->filled;
 		if (bsize < 1) {
 			transfer->buffer_len += DEFAULT_BUFFER_SIZE;
-			transfer->buffer = g_realloc(transfer->buffer, transfer->buffer_len);
+			transfer->buffer = g_realloc(transfer->buffer,
+						transfer->buffer_len);
 		}
 
 		transfer->buffer[transfer->filled] = '\0';
@@ -407,13 +412,14 @@ int transfer_get(struct transfer_data *transfer, transfer_callback_t func,
 		return -EALREADY;
 
 	if (g_strcmp0(transfer->type, "x-bt/vcard-listing") == 0 ||
+			g_strcmp0(transfer->type, "x-bt/phonebook") == 0 ||
 			g_strcmp0(transfer->type, "x-obex/folder-listing") == 0)
 		cb = get_xfer_listing_progress;
 	else {
 		int fd = open(transfer->name ? : transfer->filename,
 				O_WRONLY | O_CREAT, 0600);
 
-		if (transfer->fd < 0) {
+		if (fd < 0) {
 			error("open(): %s(%d)", strerror(errno), errno);
 			return -errno;
 		}
diff --git a/obexd/client/transfer.h b/obexd/client/transfer.h
index dc0f3a4..500232b 100644
--- a/obexd/client/transfer.h
+++ b/obexd/client/transfer.h
@@ -24,7 +24,7 @@
 #include <gw-obex.h>
 
 struct transfer_params {
-	const guint8 *data;
+	guint8 *data;
 	gint size;
 };