Diff between 810e80df6f8c884369642b94ba3666208017d1a4 and 858703e7a4d5a74c9dd8b1d3c01cb615af221d81

Changed Files

File Additions Deletions Status
obexd/src/obex.c +5 -11 modified

Full Patch

diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index 25e29e9..0bfdff9 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
@@ -111,16 +111,11 @@ static void os_reset_session(struct obex_session *os, gboolean aborted)
 
 static void obex_session_free(struct obex_session *os)
 {
-	if (os->name)
-		g_free(os->name);
-	if (os->type)
-		g_free(os->type);
+	os_reset_session(os, os->offset != os->size);
+
 	if (os->current_folder)
 		g_free(os->current_folder);
-	if (os->buf)
-		g_free(os->buf);
-	if (os->fd > 0)
-		close(os->fd);
+
 	g_free(os);
 }
 
@@ -737,7 +732,7 @@ static void obex_event(obex_t *obex, obex_object_t *obj, gint mode,
 			if (os->target == NULL)
 				emit_transfer_completed(os->cid,
 							os->offset == os->size);
-			os_reset_session(os, FALSE);
+			os_reset_session(os, os->offset != os->size);
 			break;
 		default:
 			break;
@@ -828,8 +823,7 @@ static void obex_handle_destroy(gpointer user_data)
 	if (os->target == NULL) {
 		/* Got an error during a transfer. */
 		if (os->fd >= 0)
-			emit_transfer_completed(os->cid,
-					os->offset == os->size);
+			emit_transfer_completed(os->cid, os->offset == os->size);
 
 		unregister_transfer(os->cid);
 	} else {