[evolution-mapi] Fix issues found by Coverity Scan



commit f78a353b47242144283ac357c0377cfd226a0460
Author: Milan Crha <mcrha redhat com>
Date:   Fri Feb 10 14:05:57 2012 +0100

    Fix issues found by Coverity Scan

 .../e-mapi-account-listener.c                      |    4 +---
 src/account-setup-eplugin/e-mapi-account-setup.c   |    7 ++++---
 src/addressbook/e-book-backend-mapi-contacts.c     |    4 ++--
 src/addressbook/e-book-backend-mapi.c              |    6 ++----
 src/calendar/e-cal-backend-mapi.c                  |    4 +---
 src/camel/camel-mapi-store.c                       |    2 +-
 src/camel/camel-mapi-transport.c                   |    8 ++++----
 src/libexchangemapi/e-mapi-book-utils.c            |    9 ++-------
 src/libexchangemapi/e-mapi-cal-recur-utils.c       |    9 +++++----
 src/libexchangemapi/e-mapi-cal-utils.c             |    5 ++---
 src/libexchangemapi/e-mapi-connection.c            |    6 +++---
 src/libexchangemapi/e-mapi-debug.c                 |    6 +++---
 12 files changed, 30 insertions(+), 40 deletions(-)
---
diff --git a/src/account-setup-eplugin/e-mapi-account-listener.c b/src/account-setup-eplugin/e-mapi-account-listener.c
index 3768069..b38e918 100644
--- a/src/account-setup-eplugin/e-mapi-account-listener.c
+++ b/src/account-setup-eplugin/e-mapi-account-listener.c
@@ -1158,9 +1158,7 @@ mapi_account_changed_async (gpointer worker_data, gboolean cancelled, gpointer u
 	g_return_if_fail (account != NULL);
 
 	isa_mapi_account = is_mapi_account (account);
-
-	if (isa_mapi_account)
-		existing_account_info = lookup_account_info (account->uid);
+	existing_account_info = lookup_account_info (account->uid);
 
 	if (existing_account_info)
 		old_url = camel_url_new (existing_account_info->source_url, NULL);
diff --git a/src/account-setup-eplugin/e-mapi-account-setup.c b/src/account-setup-eplugin/e-mapi-account-setup.c
index baeae7b..7621d44 100644
--- a/src/account-setup-eplugin/e-mapi-account-setup.c
+++ b/src/account-setup-eplugin/e-mapi-account-setup.c
@@ -679,7 +679,7 @@ add_to_store (GtkTreeStore *ts, EMapiFolder *folder)
 
 	ts_model = GTK_TREE_MODEL (ts);
 
-	gtk_tree_model_get_iter_first (ts_model, &iter);
+	g_return_if_fail (gtk_tree_model_get_iter_first (ts_model, &iter));
 	if (!check_node (ts, folder, iter)) {
 		GtkTreeIter node;
 		gtk_tree_store_append (ts, &node, &iter);
@@ -729,6 +729,7 @@ add_folders (GSList *folders, GtkTreeStore *ts, EMapiFolderType folder_type)
 {
 	GSList *tmp = folders;
 	GtkTreeIter iter;
+	GtkTreeModel *model = GTK_TREE_MODEL (ts);
 	gchar *node = _("Personal Folders");
 
 	/* add all... */
@@ -741,8 +742,8 @@ add_folders (GSList *folders, GtkTreeStore *ts, EMapiFolderType folder_type)
 	}
 
 	/* ... then remove those which don't belong to folder_type */
-	if (gtk_tree_model_get_iter_first ((GtkTreeModel *)ts, &iter)) {
-		traverse_tree ((GtkTreeModel *)ts, iter, folder_type, NULL);
+	if (gtk_tree_model_get_iter_first (model, &iter)) {
+		traverse_tree (model, iter, folder_type, NULL);
 	}
 }
 
diff --git a/src/addressbook/e-book-backend-mapi-contacts.c b/src/addressbook/e-book-backend-mapi-contacts.c
index 32ef991..7cc87a3 100644
--- a/src/addressbook/e-book-backend-mapi-contacts.c
+++ b/src/addressbook/e-book-backend-mapi-contacts.c
@@ -163,7 +163,7 @@ gather_contact_mids_cb (EMapiConnection *conn,
 			GCancellable *cancellable,
 			GError **perror)
 {
-	GSList *pmids = user_data;
+	GSList **pmids = user_data;
 	mapi_id_t *pmid;
 
 	g_return_val_if_fail (object_data != NULL, FALSE);
@@ -172,7 +172,7 @@ gather_contact_mids_cb (EMapiConnection *conn,
 	pmid = g_new0 (mapi_id_t, 1);
 	*pmid = object_data->mid;
 
-	pmids = g_slist_prepend (pmids, pmid);
+	*pmids = g_slist_prepend (*pmids, pmid);
 
 	return TRUE;
 }
diff --git a/src/addressbook/e-book-backend-mapi.c b/src/addressbook/e-book-backend-mapi.c
index 9a84877..856987b 100644
--- a/src/addressbook/e-book-backend-mapi.c
+++ b/src/addressbook/e-book-backend-mapi.c
@@ -1525,7 +1525,7 @@ e_book_backend_mapi_update_view_by_cache (EBookBackendMAPI *ebma, EDataBookView
 		EbSdbSearchData *sdata = (EbSdbSearchData *) l->data;
 		gchar *vcard = sdata->vcard;
 
-		if (i > 0 && ((i++) % 10) == 0 && !e_book_backend_mapi_book_view_is_running (ebma, book_view))
+		if (((i++) % 10) == 0 && !e_book_backend_mapi_book_view_is_running (ebma, book_view))
 			break;
 
 		if (vcard) {
@@ -1705,10 +1705,8 @@ mapi_error_to_edb_error (GError **perror, const GError *mapi_error, EDataBookSta
 
 	if (context)
 		err_msg = g_strconcat (context, mapi_error ? ": " : NULL, mapi_error ? mapi_error->message : NULL, NULL);
-	else if (!mapi_error)
-		err_msg = g_strdup (_("Unknown error"));
 
-	g_propagate_error (perror, e_data_book_create_error (code, err_msg ? err_msg : mapi_error->message));
+	g_propagate_error (perror, e_data_book_create_error (code, err_msg ? err_msg : mapi_error ? mapi_error->message : _("Unknown error")));
 
 	g_free (err_msg);
 }
diff --git a/src/calendar/e-cal-backend-mapi.c b/src/calendar/e-cal-backend-mapi.c
index c062fc5..9811cb4 100644
--- a/src/calendar/e-cal-backend-mapi.c
+++ b/src/calendar/e-cal-backend-mapi.c
@@ -160,10 +160,8 @@ mapi_error_to_edc_error (GError **perror, const GError *mapi_error, EDataCalCall
 
 	if (context)
 		err_msg = g_strconcat (context, mapi_error ? ": " : NULL, mapi_error ? mapi_error->message : NULL, NULL);
-	else if (!mapi_error)
-		err_msg = g_strdup (_("Unknown error"));
 
-	g_propagate_error (perror, EDC_ERROR_EX (code, err_msg ? err_msg : mapi_error->message));
+	g_propagate_error (perror, EDC_ERROR_EX (code, err_msg ? err_msg : mapi_error ? mapi_error->message : _("Unknown error")));
 
 	g_free (err_msg);
 }
diff --git a/src/camel/camel-mapi-store.c b/src/camel/camel-mapi-store.c
index 62f1815..4760bf9 100644
--- a/src/camel/camel-mapi-store.c
+++ b/src/camel/camel-mapi-store.c
@@ -205,7 +205,7 @@ escape_slash (const gchar *str)
 	if (!count)
 		return g_strdup (str);
 
-	res = g_malloc0 (sizeof (gchar *) * (1 + ii + (2 * count)));
+	res = g_malloc0 (sizeof (gchar) * (1 + ii + (2 * count)));
 	for (ii = 0, jj = 0; str[ii]; ii++, jj++) {
 		if (str[ii] == '\\') {
 			res[jj] = '\\';
diff --git a/src/camel/camel-mapi-transport.c b/src/camel/camel-mapi-transport.c
index 998c4b8..80b067f 100644
--- a/src/camel/camel-mapi-transport.c
+++ b/src/camel/camel-mapi-transport.c
@@ -89,7 +89,7 @@ mapi_send_to_sync (CamelTransport *transport,
 	const gchar *profile;
 	GError *mapi_error = NULL;
 
-	if (!camel_internet_address_get((CamelInternetAddress *)from, 0, &namep, &addressp)) {
+	if (!camel_internet_address_get (CAMEL_INTERNET_ADDRESS (from), 0, &namep, &addressp)) {
 		return (FALSE);
 	}
 
@@ -136,10 +136,10 @@ mapi_send_to_sync (CamelTransport *transport,
 		return FALSE;
 	}
 
-	if (e_mapi_connection_open_default_folder (conn, olFolderSentMail, &obj_folder, cancellable, error)) {
-		e_mapi_connection_create_object (conn, &obj_folder, E_MAPI_CREATE_FLAG_SUBMIT, convert_message_to_object_cb, message, &mid, cancellable, error);
+	if (e_mapi_connection_open_default_folder (conn, olFolderSentMail, &obj_folder, cancellable, &mapi_error)) {
+		e_mapi_connection_create_object (conn, &obj_folder, E_MAPI_CREATE_FLAG_SUBMIT, convert_message_to_object_cb, message, &mid, cancellable, &mapi_error);
 
-		e_mapi_connection_close_folder (conn, &obj_folder, cancellable, error);
+		e_mapi_connection_close_folder (conn, &obj_folder, cancellable, &mapi_error);
 	}
 
 	g_object_unref (conn);
diff --git a/src/libexchangemapi/e-mapi-book-utils.c b/src/libexchangemapi/e-mapi-book-utils.c
index 911b4e1..b403b58 100644
--- a/src/libexchangemapi/e-mapi-book-utils.c
+++ b/src/libexchangemapi/e-mapi-book-utils.c
@@ -434,9 +434,8 @@ e_mapi_book_utils_contact_to_object (EContact *contact,
 		struct BinaryArray_r *members, *oneoff_members;
 		uint32_t u32, crc32 = 0;
 		GHashTable *member_values = NULL, *member_ids = NULL;
-		GError *error = NULL;
 
-		if (!error && old_contact) {
+		if (old_contact) {
 			member_values = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
 			member_ids = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 
@@ -462,9 +461,6 @@ e_mapi_book_utils_contact_to_object (EContact *contact,
 			g_list_free_full (local, (GDestroyNotify) e_vcard_attribute_free);
 		}
 
-		if (error)
-			g_error_free (error);
-
 		set_value (PidTagMessageClass, IPM_DISTLIST);
 		u32 = 0xFFFFFFFF;
 		set_value (PidLidFileUnderId, &u32);
@@ -501,8 +497,7 @@ e_mapi_book_utils_contact_to_object (EContact *contact,
 			if (camel_address_decode (CAMEL_ADDRESS (addr), raw) > 0) {
 				const gchar *nm = NULL, *eml = NULL;
 
-				camel_internet_address_get (addr, 0, &nm, &eml);
-				if (eml) {
+				if (camel_internet_address_get (addr, 0, &nm, &eml) && eml) {
 					/* keep both lists in sync */
 					if (member_values && g_hash_table_lookup (member_values, raw)) {
 						/* stored ListMembers values when contact's value didn't change */
diff --git a/src/libexchangemapi/e-mapi-cal-recur-utils.c b/src/libexchangemapi/e-mapi-cal-recur-utils.c
index 8dc5abf..def91e7 100644
--- a/src/libexchangemapi/e-mapi-cal-recur-utils.c
+++ b/src/libexchangemapi/e-mapi-cal-recur-utils.c
@@ -1144,10 +1144,12 @@ e_mapi_cal_util_rrule_to_bin (ECalComponent *comp,
 		return FALSE;
 
 	e_cal_component_get_rrule_list (comp, &rrule_list);
-	e_cal_component_get_exdate_list (comp, &exdate_list);
+	if (g_slist_length (rrule_list) != 1) {
+		e_cal_component_free_recur_list (rrule_list);
+		return FALSE;
+	}
 
-	if (g_slist_length (rrule_list) != 1)
-		goto cleanup;
+	e_cal_component_get_exdate_list (comp, &exdate_list);
 
 	rt = (struct icalrecurrencetype *)(rrule_list->data);
 
@@ -1369,7 +1371,6 @@ e_mapi_cal_util_rrule_to_bin (ECalComponent *comp,
 	/* Reserved Block 2 Size */
 	arp_to_gba(&arp, ba);
 
- cleanup:
 	free_arp_contents(&arp);
 	e_cal_component_free_exdate_list (exdate_list);
 	e_cal_component_free_recur_list (rrule_list);
diff --git a/src/libexchangemapi/e-mapi-cal-utils.c b/src/libexchangemapi/e-mapi-cal-utils.c
index 1344a51..9b635e8 100644
--- a/src/libexchangemapi/e-mapi-cal-utils.c
+++ b/src/libexchangemapi/e-mapi-cal-utils.c
@@ -558,7 +558,6 @@ e_mapi_cal_utils_get_free_busy_data (EMapiConnection *conn, const GSList *users,
 	GSList *attendee_list = NULL;
 	icalcomponent *icalcomp = NULL;
 	icaltimetype start_time, end_time;
-	icaltimezone *default_zone = NULL;
 
 	*freebusy = NULL;
 
@@ -600,8 +599,8 @@ e_mapi_cal_utils_get_free_busy_data (EMapiConnection *conn, const GSList *users,
 		e_cal_component_commit_sequence (comp);
 		icalcomp = e_cal_component_get_icalcomponent (comp);
 
-		start_time = icaltime_from_timet_with_zone (start, 0, default_zone ? default_zone : NULL);
-		end_time = icaltime_from_timet_with_zone (end, 0, default_zone ? default_zone : NULL);
+		start_time = icaltime_from_timet_with_zone (start, 0, NULL);
+		end_time = icaltime_from_timet_with_zone (end, 0, NULL);
 		icalcomponent_set_dtstart (icalcomp, start_time);
 		icalcomponent_set_dtend (icalcomp, end_time);
 
diff --git a/src/libexchangemapi/e-mapi-connection.c b/src/libexchangemapi/e-mapi-connection.c
index 32ddd16..e1c0c71 100644
--- a/src/libexchangemapi/e-mapi-connection.c
+++ b/src/libexchangemapi/e-mapi-connection.c
@@ -3302,7 +3302,7 @@ update_props_on_object (EMapiConnection *conn,
 			GCancellable *cancellable,
 			GError **perror)
 {
-	enum MAPISTATUS	ms;
+	enum MAPISTATUS	ms = MAPI_E_RESERVED;
 	struct SPropValue *props = NULL;
 	uint32_t propslen = 0;
 	EMapiStreamedProp *streams = NULL;
@@ -5382,7 +5382,7 @@ e_mapi_connection_copymove_items (EMapiConnection *conn,
 				  GCancellable *cancellable,
 				  GError **perror)
 {
-	enum MAPISTATUS	ms;
+	enum MAPISTATUS	ms = MAPI_E_RESERVED;
 	GSList *l;
 
 	CHECK_CORRECT_CONN_AND_GET_PRIV (conn, MAPI_E_INVALID_PARAMETER);
@@ -6484,7 +6484,7 @@ try_create_profile_main_thread_cb (struct tcp_data *data)
 	for (iter = e_list_get_iterator (E_LIST (accounts)); e_iterator_is_valid (iter); e_iterator_next (iter)) {
 		EAccount *account = E_ACCOUNT (e_iterator_get (iter));
 		if (account && account->source && account->source->url && g_ascii_strncasecmp (account->source->url, "mapi://", 7) == 0) {
-			CamelURL *url = camel_url_new (e_account_get_string (account, E_ACCOUNT_SOURCE_URL), NULL);
+			CamelURL *url;
 			CamelSettings *settings;
 			const gchar *url_string;
 
diff --git a/src/libexchangemapi/e-mapi-debug.c b/src/libexchangemapi/e-mapi-debug.c
index 835a8e1..fcf2f65 100644
--- a/src/libexchangemapi/e-mapi-debug.c
+++ b/src/libexchangemapi/e-mapi-debug.c
@@ -770,6 +770,7 @@ e_mapi_debug_dump_properties (struct mapi_SPropValue_array *properties,
 			break;
 		case PT_APPTIME:
 			g_print (" PT_APPTIME");
+			break;
 		case PT_I8:
 			g_print (" (gint) - 0x%016" G_GINT64_MODIFIER "X", lpProp->value.d);
 			break;
@@ -790,8 +791,7 @@ e_mapi_debug_dump_properties (struct mapi_SPropValue_array *properties,
 			g_print (" (string) - '%s'", lpProp->value.lpszA ? lpProp->value.lpszA : "null");
 			break;
 		case PT_UNICODE:
-			if (lpProp)
-				g_print (" (unicodestring) - '%s'", lpProp->value.lpszW ? lpProp->value.lpszW : lpProp->value.lpszA ? lpProp->value.lpszA : "null");
+			g_print (" (unicodestring) - '%s'", lpProp->value.lpszW ? lpProp->value.lpszW : lpProp->value.lpszA ? lpProp->value.lpszA : "null");
 			break;
 		case PT_OBJECT:
 			g_print (" PT_OBJECT");
@@ -917,7 +917,7 @@ e_mapi_debug_dump_object (EMapiObject *object, gboolean with_properties, gint in
 	EMapiAttachment *attachment;
 	gint index;
 
-	g_print ("%*sEMapiObject: %p (parent:%p)\n", indent, "", object, object->parent);
+	g_print ("%*sEMapiObject: %p (parent:%p)\n", indent, "", object, object ? object->parent : NULL);
 
 	if (!object)
 		return;



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