[evolution-patches] [calendar] fix for bug# 273322



Attached patch fixes bug#273322 (Evolution crashes after some apparent
corruption in the loal mailbox).

Please review.

Regards,
Dinesh

Index: gui/e-pub-utils.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-pub-utils.c,v
retrieving revision 1.7
diff -u -p -r1.7 e-pub-utils.c
--- gui/e-pub-utils.c	23 Feb 2005 18:56:56 -0000	1.7
+++ gui/e-pub-utils.c	4 Oct 2005 11:11:19 -0000
@@ -212,7 +212,7 @@ e_pub_publish (gboolean publish) {
 	uri_config_list = calendar_config_get_free_busy ();
 
 	for (l = uri_config_list; l != NULL; l = l->next) {
-		GSList *p =NULL;
+		GSList *p =NULL, *q;
 		EPublishUri *uri;
 		ECalComponent *clone = NULL;
 		gboolean cloned = FALSE;
@@ -254,8 +254,9 @@ e_pub_publish (gboolean publish) {
 			/* We still need to set the last_pub_time */
 			uri->last_pub_time = 0;
 			is_publish_time (uri);
-			
+			q = NULL;
 			for (p = uri->calendars; p != NULL; p = p->next) {
+				
 				GList *comp_list = NULL;
 				gchar *source_uid;
 				ESource * source;
@@ -267,7 +268,8 @@ e_pub_publish (gboolean publish) {
 
 				if (!client) {
 					g_warning (G_STRLOC ": Could not publish Free/Busy: Calendar backend no longer exists");
-
+					g_free (p->data);
+					q = g_slist_append (q, p);
 					continue;
 				}
 			
@@ -288,9 +290,14 @@ e_pub_publish (gboolean publish) {
 				}
 				
 				g_object_unref (client);
-			
+				client = NULL;
 				g_free (source_uid);
 			}
+
+			for (p = q; p != NULL; p = p->next) {
+				uri->calendars = g_slist_delete_link (uri->calendars, p->data);
+			}
+			g_slist_free (q);
 
 			/* add password to the uri */
 			password = e_passwords_get_password ("Calendar", 
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2825
diff -u -p -r1.2825 ChangeLog
--- ChangeLog	3 Oct 2005 11:20:50 -0000	1.2825
+++ ChangeLog	4 Oct 2005 11:11:22 -0000
@@ -1,3 +1,9 @@
+2005-10-04  Dinesh Layek <LDinesh novell com>
+	
+	Fixes #273322
+	* gui/e-pub-utils.c (e_pub_publish): removed the source from uri->calendars
+	when the calendar backend no longer exists.
+
 2005-10-02  Srinivasa Ragavan <sragavan novell com>
 	
 	Provides across calendars keyboard accelerators for popup menus


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]