summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkhil Laddha <lakhil@novell.com>2007-10-29 02:15:59 +0000
committerSrinivasa Ragavan <sragavan@src.gnome.org>2007-10-29 02:15:59 +0000
commitda92c03bab2b6c77b421e73cc226d5515cf2dd8d (patch)
tree2598ca2c9a68402ad317655caa97d4ea032085cc
parentac51691d356be2a6c7eaa427e34fac581924fffe (diff)
downloadevolution-data-server-da92c03bab2b6c77b421e73cc226d5515cf2dd8d.tar.gz
** Fix for bug #486873
2007-10-22 Akhil Laddha <lakhil@novell.com> ** Fix for bug #486873 * backends/file/e-book-backend-file.c: (book_view_thread): * libedata-book/e-data-book-view.c: (e_data_book_view_notify_update_vcard), (e_data_book_view_notify_update_prefiltered_vcard): Avoid a double free and make sure that the view_ functions free at all cases. svn path=/branches/gnome-2-20/; revision=8158
-rw-r--r--addressbook/ChangeLog10
-rw-r--r--addressbook/backends/file/e-book-backend-file.c1
-rw-r--r--addressbook/libedata-book/e-data-book-view.c5
3 files changed, 12 insertions, 4 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 2c75808f0..5cd0e3db9 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,13 @@
+2007-10-22 Akhil Laddha <lakhil@novell.com>
+
+ ** Fix for bug #486873
+
+ * backends/file/e-book-backend-file.c: (book_view_thread):
+ * libedata-book/e-data-book-view.c:
+ (e_data_book_view_notify_update_vcard),
+ (e_data_book_view_notify_update_prefiltered_vcard): Avoid a double free and
+ make sure that the view_ functions free at all cases.
+
2007-10-19 Matthew Barnes <mbarnes@redhat.com>
** Fixes bug #488351
diff --git a/addressbook/backends/file/e-book-backend-file.c b/addressbook/backends/file/e-book-backend-file.c
index cf079821f..46b506e1b 100644
--- a/addressbook/backends/file/e-book-backend-file.c
+++ b/addressbook/backends/file/e-book-backend-file.c
@@ -612,7 +612,6 @@ book_view_thread (gpointer data)
e_data_book_view_notify_update_prefiltered_vcard (book_view, id_dbt.data, vcard_dbt.data);
else
e_data_book_view_notify_update_vcard (book_view, vcard_dbt.data);
- g_free (vcard_dbt.data);
} else {
g_free (vcard_dbt.data);
}
diff --git a/addressbook/libedata-book/e-data-book-view.c b/addressbook/libedata-book/e-data-book-view.c
index c9eeb6c5b..90f78f577 100644
--- a/addressbook/libedata-book/e-data-book-view.c
+++ b/addressbook/libedata-book/e-data-book-view.c
@@ -320,11 +320,9 @@ e_data_book_view_notify_update_vcard (EDataBookView *book_view, char *vcard)
} else {
if (currently_in_view)
notify_remove (book_view, id);
- else
- /* else nothing; we're removing a card that wasn't there */
- free (vcard);
}
+ g_free (vcard);
g_object_unref (contact);
g_mutex_unlock (book_view->priv->pending_mutex);
}
@@ -364,6 +362,7 @@ e_data_book_view_notify_update_prefiltered_vcard (EDataBookView *book_view, cons
else
notify_add (book_view, id, vcard);
+ g_free (vcard);
g_mutex_unlock (book_view->priv->pending_mutex);
}