Diff between cc219ecc36a0a1fcf05e05b20c097904cfb17b06 and 0e00848363363455ec71f98a176a9f2af3d59cef

Changed Files

File Additions Deletions Status
obexd/client/session.c +10 -20 modified

Full Patch

diff --git a/obexd/client/session.c b/obexd/client/session.c
index b24f32f..798ffcc 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
@@ -832,6 +832,16 @@ static char *register_transfer(DBusConnection *conn, void *user_data)
 
 static void unregister_transfer(struct session_data *session)
 {
+	gw_obex_xfer_close(session->xfer, NULL);
+	gw_obex_xfer_free(session->xfer);
+	session->xfer = NULL;
+
+	g_free(session->filename);
+	session->filename = NULL;
+
+	g_free(session->name);
+	session->name = NULL;
+
 	if (session->transfer_path == NULL)
 		return;
 
@@ -948,16 +958,6 @@ complete:
 
 	unregister_transfer(session);
 
-	gw_obex_xfer_close(xfer, NULL);
-	gw_obex_xfer_free(xfer);
-	callback->session->xfer = NULL;
-
-	g_free(session->filename);
-	session->filename = NULL;
-
-	g_free(session->name);
-	session->name = NULL;
-
 	callback->func(callback->session, callback->data);
 
 	if (session->fd > 0)
@@ -1245,16 +1245,6 @@ complete:
 
 	unregister_transfer(session);
 
-	gw_obex_xfer_close(session->xfer, NULL);
-	gw_obex_xfer_free(session->xfer);
-	session->xfer = NULL;
-
-	g_free(session->filename);
-	session->filename = NULL;
-
-	g_free(session->name);
-	session->name = NULL;
-
 	if (session->pending->len > 0) {
 		gchar *filename = g_ptr_array_index(session->pending, 0);
 		gchar *basename = g_path_get_basename(filename);