From a9cea92f5e356655013e20be8f1a94543c9ed72f Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Thu, 15 Dec 2011 14:45:57 +0100 Subject: Avoid use-after-free in em_config_target_update_settings --- mail/em-config.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mail/em-config.c b/mail/em-config.c index 1e025323f4..fbf27fa1bb 100644 --- a/mail/em-config.c +++ b/mail/em-config.c @@ -207,6 +207,8 @@ em_config_target_update_settings (EConfig *ep, const gchar *transport_protocol, CamelSettings *transport_settings) { + gchar *tmp; + g_return_if_fail (ep != NULL); g_return_if_fail (target != NULL); @@ -228,8 +230,10 @@ em_config_target_update_settings (EConfig *ep, if (target->transport_settings != NULL) g_object_unref (target->transport_settings); + /* the pointers can be same, thus avoid use-after-free */ + tmp = g_strdup (email_address); g_free (target->email_address); - target->email_address = g_strdup (email_address); + target->email_address = tmp; target->storage_protocol = storage_protocol; target->storage_settings = storage_settings; -- cgit