[evolution] Bug #615049 - Crash in remove_contact at e-addressbook-model.c:202



commit ecb600bbb40144caf409c245b44b3eadd70eb81d
Author: Milan Crha <mcrha redhat com>
Date:   Wed Jul 14 12:28:44 2010 +0200

    Bug #615049 - Crash in remove_contact at e-addressbook-model.c:202

 addressbook/gui/widgets/e-addressbook-model.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c
index b469e82..b46068d 100644
--- a/addressbook/gui/widgets/e-addressbook-model.c
+++ b/addressbook/gui/widgets/e-addressbook-model.c
@@ -199,10 +199,18 @@ remove_contact(EBookView *book_view,
 			const gchar *uid;
 
 			contact = array->pdata[ii];
+			/* check if already removed */
+			if (!contact)
+				continue;
+
 			uid = e_contact_get_const (contact, E_CONTACT_UID);
+			g_return_if_fail (uid != NULL);
+
 			if (strcmp (uid, target_uid) == 0) {
 				g_object_unref (contact);
 				g_array_append_val (indices, ii);
+				array->pdata[ii] = NULL;
+				break;
 			}
 		}
 	}



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