diff --git a/obexd/client/main.c b/obexd/client/main.c
index e20eafc..259d4b0 100644
--- a/obexd/client/main.c
+++ b/obexd/client/main.c
for (i = 0; i < data->files->len; i++) {
const gchar *filename = g_ptr_array_index(data->files, i);
+ gchar *basename = g_path_get_basename(filename);
- if (session_send(session, filename,
- g_path_get_basename(filename)) < 0)
+ if (session_send(session, filename, basename) < 0) {
+ g_free(basename);
break;
+ }
+
+ g_free(basename);
}
done:
diff --git a/obexd/client/session.c b/obexd/client/session.c
index 83374b5..c61c004 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
}
if (session->pending->len > 0) {
- gchar *filename;
- filename = g_ptr_array_index(session->pending, 0);
+ gchar *filename = g_ptr_array_index(session->pending, 0);
+ gchar *basename = g_path_get_basename(filename);
+
g_ptr_array_remove(session->pending, filename);
if (session->transfer_path) {
session->transfer_path = NULL;
}
- session_send(session, filename, g_path_get_basename(filename));
+ session_send(session, filename, basename);
g_free(filename);
+ g_free(basename);
}
session_unref(session);