[evolution-mapi/gnome-2-28] Bug #601212 - eds crashes when try to delete mapi GAL



commit d0eafbd46e97899cb5f4cc1976b4dfdd3873c0de
Author: Milan Crha <mcrha redhat com>
Date:   Mon Nov 9 14:32:02 2009 +0100

    Bug #601212 - eds crashes when try to delete mapi GAL

 src/addressbook/e-book-backend-mapi-gal.c      |    7 +++++++
 src/libexchangemapi/exchange-mapi-connection.c |    2 +-
 2 files changed, 8 insertions(+), 1 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-mapi-gal.c b/src/addressbook/e-book-backend-mapi-gal.c
index 948d6bb..94bfb46 100644
--- a/src/addressbook/e-book-backend-mapi-gal.c
+++ b/src/addressbook/e-book-backend-mapi-gal.c
@@ -829,6 +829,12 @@ e_book_backend_mapi_gal_stop_book_view (EBookBackend  *backend,
 	/* FIXME : provide implmentation */
 }
 
+static void
+e_book_backend_mapi_gal_remove (EBookBackend *backend, EDataBook *book, guint32 opid)
+{
+	e_data_book_respond_remove (book, opid, GNOME_Evolution_Addressbook_PermissionDenied);
+}
+
 static void e_book_backend_mapi_gal_class_init (EBookBackendMAPIGALClass *klass)
 {
 	GObjectClass  *object_class = G_OBJECT_CLASS (klass);
@@ -853,6 +859,7 @@ static void e_book_backend_mapi_gal_class_init (EBookBackendMAPIGALClass *klass)
 	parent_class->get_supported_fields	 = e_book_backend_mapi_gal_get_supported_fields;
 	parent_class->get_required_fields	 = e_book_backend_mapi_gal_get_required_fields;
 	parent_class->set_mode                   = e_book_backend_mapi_gal_set_mode;
+	parent_class->remove			 = e_book_backend_mapi_gal_remove;
 	object_class->dispose                    = e_book_backend_mapi_gal_dispose;
 
 
diff --git a/src/libexchangemapi/exchange-mapi-connection.c b/src/libexchangemapi/exchange-mapi-connection.c
index 4c953bc..679cffb 100644
--- a/src/libexchangemapi/exchange-mapi-connection.c
+++ b/src/libexchangemapi/exchange-mapi-connection.c
@@ -771,7 +771,7 @@ exchange_mapi_util_get_gal (GPtrArray *contacts_array)
 	do {
 		count += 0x2;
 		retval = GetGALTable(global_mapi_session, SPropTagArray, &SRowSet, count, ulFlags);
-		if ((!SRowSet) || (!(SRowSet->aRow))) {
+		if ((!SRowSet) || (!(SRowSet->aRow)) || retval != MAPI_E_SUCCESS) {
 			UNLOCK ();
 			MAPIFreeBuffer (SPropTagArray);
 			return FALSE;



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