evolution-exchange r1767 - in trunk: . addressbook



Author: msuman
Date: Mon Sep  1 04:04:58 2008
New Revision: 1767
URL: http://svn.gnome.org/viewvc/evolution-exchange?rev=1767&view=rev

Log:
Milan Crha  <mcrha redhat com> ** Fix for bug #473924 (Prevent crash on invalid call sequence).

Modified:
   trunk/ChangeLog
   trunk/addressbook/e-book-backend-exchange.c

Modified: trunk/addressbook/e-book-backend-exchange.c
==============================================================================
--- trunk/addressbook/e-book-backend-exchange.c	(original)
+++ trunk/addressbook/e-book-backend-exchange.c	Mon Sep  1 04:04:58 2008
@@ -2110,17 +2110,21 @@
 	r = e_sexp_eval (sexp);
 	if (r && r->type == ESEXP_RES_UNDEFINED)
 		rn = (E2kRestriction *)r->value.string;
-	else {
-		g_warning ("conversion to exchange restriction failed");
+	else
 		rn = NULL;
-	}
+
+	if (!rn)
+		g_warning ("conversion to exchange restriction failed, query: '%s'", query ? query : "[null]");
 
 	e_sexp_result_free (sexp, r);
 	e_sexp_unref (sexp);
 
-	if (base_rn) {
+	if (base_rn && rn) {
 		e2k_restriction_ref (base_rn);
 		rn = e2k_restriction_andv (rn, base_rn, NULL);
+
+		if (!rn)
+			g_warning ("failed to concat with a base_rn, query: '%s'", query ? query : "[null]");
 	}
 
 	return rn;
@@ -2234,9 +2238,14 @@
 
 		rn = e_book_backend_exchange_build_restriction (query,
 								bepriv->base_rn);
+
+		if (!rn)
+			return GNOME_Evolution_Addressbook_OtherError;
+
 		iter = e_folder_exchange_search_start (bepriv->folder, NULL,
 					       field_names, n_field_names,
 					       rn, NULL, TRUE);
+
 		e2k_restriction_unref (rn);
 
 		*contacts = NULL;
@@ -2330,6 +2339,9 @@
 		rn = e_book_backend_exchange_build_restriction (query,
 							bepriv->base_rn);
 
+		if (!rn)
+			return;
+
 		iter = e_folder_exchange_search_start (bepriv->folder, NULL,
 					       field_names, n_field_names,
 					       rn, NULL, TRUE);



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