diff -p -u -2 -r1.73 camel-imap-command.c --- camel/providers/imap/camel-imap-command.c 1 Dec 2005 07:26:34 -0000 1.73 +++ camel/providers/imap/camel-imap-command.c 14 Dec 2005 14:08:32 -0000 @@ -767,9 +767,17 @@ imap_command_strdup_vprintf (CamelImapSt case 'F': string = va_arg (ap, char *); + /* NB: string is freed during output */ if (*p == 'F') { - /* NB: this is freed during output */ char *s = camel_imap_store_summary_full_from_path(store->summary, string); - string = s?s:camel_utf8_utf7(string); + if (s) { + string = camel_utf8_utf7(s); + g_free(s); + } else { + string = camel_utf8_utf7(string); + } + } else { + string = camel_utf8_utf7(string); } + arglen = strlen (string); g_ptr_array_add (args, string); @@ -836,6 +844,5 @@ imap_command_strdup_vprintf (CamelImapSt } - if (*p == 'F') - g_free (string); + g_free (string); break; default: diff -p -u -2 -r1.16 camel-imap-store-summary.c --- camel/providers/imap/camel-imap-store-summary.c 31 Aug 2005 04:26:02 -0000 1.16 +++ camel/providers/imap/camel-imap-store-summary.c 14 Dec 2005 14:08:33 -0000 @@ -196,5 +196,5 @@ camel_imap_store_summary_full_to_path(Ca path = (char *)full_name; - return camel_utf7_utf8(path); + return g_strdup(path); } @@ -274,5 +274,5 @@ camel_imap_store_summary_path_to_full(Ca /* merge old path part if required */ - f = camel_utf8_utf7(full); + f = g_strdup(full); if (si) { full = g_strdup_printf("%s%s", camel_imap_store_info_full_name(s, si), f);