aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--my-evolution/ChangeLog5
-rw-r--r--my-evolution/e-summary-preferences.c15
2 files changed, 17 insertions, 3 deletions
diff --git a/my-evolution/ChangeLog b/my-evolution/ChangeLog
index f360806cdf..08f7581223 100644
--- a/my-evolution/ChangeLog
+++ b/my-evolution/ChangeLog
@@ -1,5 +1,10 @@
2002-09-26 Ettore Perazzoli <ettore@ximian.com>
+ * e-summary-preferences.c (folder_list_from_vector): Do some
+ sanity checking so we don't crash miserably as in #28481.
+
+2002-09-26 Ettore Perazzoli <ettore@ximian.com>
+
* e-summary-preferences.c: Take out CNN and DebianPlanet, which do
not seem to work for me.
diff --git a/my-evolution/e-summary-preferences.c b/my-evolution/e-summary-preferences.c
index 5201dae83d..b86792bd06 100644
--- a/my-evolution/e-summary-preferences.c
+++ b/my-evolution/e-summary-preferences.c
@@ -181,11 +181,20 @@ folder_list_from_vector (const char *vector)
for (tokens = t; *tokens; tokens += 2) {
ESummaryPrefsFolder *folder;
+ const char *evolution_uri;
+ const char *physical_uri;
+
+ evolution_uri = *tokens;
+ if (evolution_uri == NULL || strncmp (evolution_uri, "evolution:", 10) != 0)
+ break;
+
+ physical_uri = *(tokens + 1);
+ if (physical_uri == NULL)
+ break;
folder = g_new (ESummaryPrefsFolder, 1);
- g_print ("%s - %s\n", *tokens, *(tokens + 1));
- folder->evolution_uri = g_strdup (*tokens);
- folder->physical_uri = g_strdup (*(tokens + 1));
+ folder->evolution_uri = g_strdup (evolution_uri);
+ folder->physical_uri = g_strdup (physical_uri);
flist = g_list_prepend (flist, folder);
}