aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-format.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@novell.com>2004-09-03 04:10:01 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2004-09-03 04:10:01 +0800
commitbb38060bedf396bdbfbf43b4469a7cea049c8338 (patch)
treed3045e857fb1512b241c6cf756f73083c09e47d6 /mail/em-format.c
parent36d36f16118ddc854462126e5bb6be04bb525c8d (diff)
downloadgsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.tar
gsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.tar.gz
gsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.tar.bz2
gsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.tar.lz
gsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.tar.xz
gsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.tar.zst
gsoc2013-evolution-bb38060bedf396bdbfbf43b4469a7cea049c8338.zip
Fix for bug #63377 and prevention of similar cases.
2004-09-01 Jeffrey Stedfast <fejj@novell.com> Fix for bug #63377 and prevention of similar cases. * em-format.c (emf_finalise): Free the default_charset. (emf_format_clone): Clone the default_charset - this prevents the particular crash described in bug #63377. * em-utils.c (em_utils_message_to_html): If source is NULL, set our own default charset (from the user's gconf key) on the formatter to make sure there's always a source charset for conversion to UTF-8. svn path=/trunk/; revision=27122
Diffstat (limited to 'mail/em-format.c')
-rw-r--r--mail/em-format.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/mail/em-format.c b/mail/em-format.c
index b7598f97c8..c34d66c5a2 100644
--- a/mail/em-format.c
+++ b/mail/em-format.c
@@ -137,6 +137,7 @@ emf_finalise(GObject *o)
em_format_clear_headers(emf);
camel_cipher_validity_free(emf->valid);
g_free(emf->charset);
+ g_free (emf->default_charset);
g_string_free(emf->part_id, TRUE);
/* FIXME: check pending jobs */
@@ -595,7 +596,9 @@ emf_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMimeM
emf->mode = emfsource->mode;
g_free(emf->charset);
emf->charset = g_strdup(emfsource->charset);
-
+ g_free (emf->default_charset);
+ emf->default_charset = g_strdup (emfsource->default_charset);
+
em_format_clear_headers(emf);
for (h = (struct _EMFormatHeader *)emfsource->header_list.head; h->next; h = h->next)
em_format_add_header(emf, h->name, h->flags);