From 16ca8eb2652aa1601559b039ca98f2797d3d098d Mon Sep 17 00:00:00 2001 From: Dmitriy Paliy Date: Thu, 7 Jul 2011 15:01:40 +0300 Subject: [PATCH] obexd: Fix invalid memory read when pulling phone book Data contacts are freed ones in finalize function which is called in query_result callback function. Calling free_data_contacts(data) twice for last phone book part causes invalid memory read when dereferencing data->contacts. --- obexd/plugins/phonebook-tracker.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/obexd/plugins/phonebook-tracker.c b/obexd/plugins/phonebook-tracker.c index 52c4746e1..cab382287 100644 --- a/obexd/plugins/phonebook-tracker.c +++ b/obexd/plugins/phonebook-tracker.c @@ -1154,7 +1154,8 @@ static void send_pull_part(struct phonebook_data *data, data->cb(vcards->str, vcards->len, g_slist_length(data->contacts), data->newmissedcalls, lastpart, data->user_data); - free_data_contacts(data); + if (!lastpart) + free_data_contacts(data); g_string_free(vcards, TRUE); } -- 2.47.3