diff --git a/evolution-data-server-2.22.0-efolder-leak.patch b/evolution-data-server-2.22.0-efolder-leak.patch new file mode 100644 index 0000000..1d0e0b0 --- /dev/null +++ b/evolution-data-server-2.22.0-efolder-leak.patch @@ -0,0 +1,34 @@ +diff -up evolution-data-server-2.22.0/servers/exchange/storage/exchange-hierarchy-webdav.c.efolder-leak evolution-data-server-2.22.0/servers/exchange/storage/exchange-hierarchy-webdav.c +--- evolution-data-server-2.22.0/servers/exchange/storage/exchange-hierarchy-webdav.c.efolder-leak 2007-11-29 07:53:44.000000000 -0500 ++++ evolution-data-server-2.22.0/servers/exchange/storage/exchange-hierarchy-webdav.c 2008-03-24 11:11:30.000000000 -0400 +@@ -756,10 +756,10 @@ scan_subtree (ExchangeHierarchy *hier, E + if (hwd->priv->deep_searchable && + e_folder_exchange_get_has_subfolders (folder)) { + e_folder_exchange_set_has_subfolders (folder, FALSE); +- subtrees = g_slist_prepend (subtrees, folder); ++ subtrees = g_slist_prepend (subtrees, g_object_ref (folder)); + } + exchange_hierarchy_new_folder (hier, folder); +- //g_object_unref (folder); ++ g_object_unref (folder); + + /* Check the folder size here */ + if (hier->type != EXCHANGE_HIERARCHY_PUBLIC) { +@@ -788,11 +788,16 @@ scan_subtree (ExchangeHierarchy *hier, E + while (subtrees) { + folder = subtrees->data; + subtrees = g_slist_remove (subtrees, folder); ++ + /* Dont scan the subtree for deleteditems folder */ + int_uri = e_folder_exchange_get_internal_uri (folder); +- if (int_uri && deleted_items_uri && !strcmp (int_uri, deleted_items_uri)) ++ if (int_uri && deleted_items_uri && !strcmp (int_uri, deleted_items_uri)) { ++ g_object_unref (folder); + continue; ++ } ++ + scan_subtree (hier, folder, mode); ++ g_object_unref (folder); + } + + e_folder_exchange_set_rescan_tree (parent, FALSE); diff --git a/evolution-data-server.spec b/evolution-data-server.spec index 1bbb868..403fd08 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -28,7 +28,7 @@ Name: evolution-data-server Version: 2.22.0 -Release: 2%{?dist} +Release: 3%{?dist} License: LGPL Group: System Environment/Libraries Summary: Backend data server for Evolution @@ -58,6 +58,9 @@ Patch15: evolution-data-server-2.22.0-implicit-function-declaration.patch # RH bug #296671 / GNOME bug #500389 Patch16: evolution-data-server-2.22.0-e2k-global-catalog.patch +# GNOME bug #523023 +Patch17: evolution-data-server-2.22.0-efolder-leak.patch + ### Build Dependencies ### BuildRequires: GConf2-devel @@ -138,6 +141,7 @@ This package contains developer documentation for %{name}. %patch14 -p1 -b .fix-64bit-acinclude %patch15 -p1 -b .implicit-function-declaration %patch16 -p1 -b .e2k-global-catalog +%patch17 -p1 -b .efolder-leak mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -380,6 +384,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gtk-doc/html/libedataserverui %changelog +* Mon Mar 24 2008 Matthew Barnes - 2.22.0-3.fc9 +- Add patch for GNOME bug #523023 (EFolder leak in evo-ex-storage). + * Tue Mar 11 2008 Matthew Barnes - 2.22.0-2.fc9 - Add patch for RH bug #296671 (GC servers may not support NTLM).