aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog6
-rw-r--r--mail/mail-config.c7
2 files changed, 9 insertions, 4 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 4e8ed653f8..d35c7c4e3d 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,9 @@
+2002-10-25 Not Zed <NotZed@Ximian.com>
+
+ * mail-config.c (mail_config_uri_renamed): Always strdup the new
+ key in the threaded/preview hash/always free the working copy.
+ For #32799.
+
2002-10-24 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (write_data_to_file): Use the mode 0666 when
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 58a7a111e3..fda1d257eb 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -2188,7 +2188,7 @@ mail_config_uri_renamed(GCompareFunc uri_cmp, const char *old, const char *new)
if (g_hash_table_lookup_extended (config->threaded_hash, oldkey, &hashkey, &val)) {
/*printf ("changing key in threaded_hash\n");*/
g_hash_table_remove (config->threaded_hash, hashkey);
- g_hash_table_insert (config->threaded_hash, newkey, val);
+ g_hash_table_insert (config->threaded_hash, g_strdup(newkey), val);
work = 2;
}
@@ -2197,13 +2197,12 @@ mail_config_uri_renamed(GCompareFunc uri_cmp, const char *old, const char *new)
if (g_hash_table_lookup_extended (config->preview_hash, oldkey, &hashkey, &val)) {
/*printf ("changing key in preview_hash\n");*/
g_hash_table_remove (config->preview_hash, hashkey);
- g_hash_table_insert (config->preview_hash, newkey, val);
+ g_hash_table_insert (config->preview_hash, g_strdup(newkey), val);
work = 2;
}
g_free (oldkey);
- if (work != 2)
- g_free (newkey);
+ g_free (newkey);
/* ignore return values or if the files exist or
* not, doesn't matter */