From 50d7138fe775ce5e0a38b84882fd72683c94ecd7 Mon Sep 17 00:00:00 2001 From: Vinicius Costa Gomes Date: Mon, 3 Nov 2008 14:42:09 -0300 Subject: [PATCH] obexd: Removing memory leaks when setting the target filename --- obexd/client/main.c | 8 ++++++-- obexd/client/session.c | 8 +++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/obexd/client/main.c b/obexd/client/main.c index e20eafc8e..259d4b024 100644 --- a/obexd/client/main.c +++ b/obexd/client/main.c @@ -74,10 +74,14 @@ static void create_callback(struct session_data *session, void *user_data) 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 83374b524..c61c004ea 100644 --- a/obexd/client/session.c +++ b/obexd/client/session.c @@ -992,8 +992,9 @@ complete: } 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) { @@ -1003,8 +1004,9 @@ complete: 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); -- 2.47.3