aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/exchange-operations/ChangeLog9
-rw-r--r--plugins/exchange-operations/exchange-account-setup.c28
2 files changed, 30 insertions, 7 deletions
diff --git a/plugins/exchange-operations/ChangeLog b/plugins/exchange-operations/ChangeLog
index 1e15d41b2c..d74523f7a2 100644
--- a/plugins/exchange-operations/ChangeLog
+++ b/plugins/exchange-operations/ChangeLog
@@ -1,3 +1,12 @@
+2008-02-02 Jeff Cai <jeff.cai@sun.com>
+
+ ** Fixes bug #513395
+
+ * exchange-account-setup.c: (owa_authenticate_user),
+ (owa_editor_entry_changed), (org_gnome_exchange_owa_url),
+ (org_gnome_exchange_check_options), (org_gnome_exchange_commit):
+ Check parameters before calling camel_url_new
+
2008-01-28 Srinivasa Ragavan <sragavan@novell.com>
* exchange-calendar.c: (e_exchange_calendar_commit): Fixes a double
diff --git a/plugins/exchange-operations/exchange-account-setup.c b/plugins/exchange-operations/exchange-account-setup.c
index 7109fccb08..340cdbab99 100644
--- a/plugins/exchange-operations/exchange-account-setup.c
+++ b/plugins/exchange-operations/exchange-account-setup.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mf (id ode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Sushma Rai <rsushma@novell.com>
* Copyright (C) 2004 Novell, Inc.
@@ -437,8 +437,9 @@ owa_authenticate_user(GtkWidget *button, EConfig *config)
source_url = e_account_get_string (target_account->account, E_ACCOUNT_SOURCE_URL);
- url = camel_url_new(source_url, NULL);
- if (url->user == NULL) {
+ if (source_url && source_url[0] != '\0')
+ url = camel_url_new(source_url, NULL);
+ if (url && url->user == NULL) {
id_name = e_account_get_string (target_account->account, E_ACCOUNT_ID_ADDRESS);
if (id_name) {
at = strchr(id_name, '@');
@@ -513,7 +514,10 @@ owa_editor_entry_changed(GtkWidget *entry, EConfig *config)
/* NB: we set the button active only if we have a parsable uri entered */
- url = camel_url_new(e_account_get_string(target->account, E_ACCOUNT_SOURCE_URL), NULL);
+ const char * target_url = e_account_get_string(target->account, E_ACCOUNT_SOURCE_URL);
+ if (target_url && target_url[0] != '\0')
+ url = camel_url_new(target_url, NULL);
+ else url = NULL;
uri = gtk_entry_get_text((GtkEntry *)entry);
if (uri && uri[0]) {
camel_url_set_param(url, "owa_url", uri);
@@ -579,7 +583,10 @@ org_gnome_exchange_owa_url(EPlugin *epl, EConfigHookItemFactoryData *data)
target_account = (EMConfigTargetAccount *)data->config->target;
source_url = e_account_get_string (target_account->account, E_ACCOUNT_SOURCE_URL);
- url = camel_url_new(source_url, NULL);
+ if (source_url && source_url[0] != '\0')
+ url = camel_url_new(source_url, NULL);
+ else
+ url = NULL;
if (url == NULL
|| strcmp(url->protocol, "exchange") != 0) {
if (url)
@@ -682,7 +689,11 @@ org_gnome_exchange_check_options(EPlugin *epl, EConfigHookPageCheckData *data)
strcmp (data->pageid, "20.receive_options") == 0) {
CamelURL *url;
- url = camel_url_new(e_account_get_string(target->account, E_ACCOUNT_SOURCE_URL), NULL);
+ const char * target_url = e_account_get_string(target->account, E_ACCOUNT_SOURCE_URL);
+ if (target_url && target_url[0] != '\0')
+ url = camel_url_new(target_url, NULL);
+ else
+ url = NULL;
/* Note: we only care about exchange url's, we WILL get called on all other url's too. */
if (url != NULL
&& strcmp(url->protocol, "exchange") == 0
@@ -726,7 +737,10 @@ org_gnome_exchange_commit (EPlugin *epl, EConfigHookItemFactoryData *data)
target_account = (EMConfigTargetAccount *)data->config->target;
source_url = e_account_get_string (target_account->account, E_ACCOUNT_SOURCE_URL);
- url = camel_url_new (source_url, NULL);
+ if (source_url && source_url[0] != '\0')
+ url = camel_url_new (source_url, NULL);
+ else
+ url = NULL;
if (url == NULL
|| strcmp (url->protocol, "exchange") != 0) {
if (url)