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
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);
}
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;
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 {