diff options
-rw-r--r-- | mail/ChangeLog | 18 | ||||
-rw-r--r-- | mail/Makefile.am | 5 | ||||
-rw-r--r-- | mail/mail-account-gui.c | 10 | ||||
-rw-r--r-- | mail/mail-display.c | 4 | ||||
-rw-r--r-- | mail/mail-ops.c | 3 | ||||
-rw-r--r-- | mail/mail-send-recv.c | 2 | ||||
-rw-r--r-- | mail/session.c | 19 |
7 files changed, 43 insertions, 18 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index bdf9f7dd1b..0a664b9a88 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,21 @@ +2001-04-13 Dan Winship <danw@ximian.com> + + * Makefile.am (evolution_mail_LDADD): Remove some redundant LIBS + variables... purify complained that the command line was too + long. :-} + + * mail-account-gui.c: Plug leaks. + + * mail-display.c (on_url_requested): close the html stream on + error too. + + * mail-ops.c (fetch_mail_fetch): Move a line around that probably + doesn't affect anything, but it's correct. + + * session.c (auth_callback): Plug leak. + + * mail-send-recv.c (receive_status): Initialize "now". + 2001-04-13 Christopher James Lahey <clahey@ximian.com> * message-list.c (on_cursor_activated_cmd): Only activate the diff --git a/mail/Makefile.am b/mail/Makefile.am index 0d7a94fb53..8a666324c2 100644 --- a/mail/Makefile.am +++ b/mail/Makefile.am @@ -115,10 +115,7 @@ evolution_mail_LDADD = \ $(top_builddir)/shell/importer/libevolution-importer.la \ $(top_builddir)/widgets/menus/libmenus.la \ $(BONOBO_VFS_GNOME_LIBS) \ - $(EXTRA_GNOME_LIBS) \ - $(GTKHTML_LIBS) \ - $(THREADS_LIBS) \ - $(UNICODE_LIBS) + $(GTKHTML_LIBS) evolution_mail_LDFLAGS = \ -export-dynamic diff --git a/mail/mail-account-gui.c b/mail/mail-account-gui.c index abae1d948d..07d84d1138 100644 --- a/mail/mail-account-gui.c +++ b/mail/mail-account-gui.c @@ -450,6 +450,8 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) if (!gui->source.provider) { gtk_widget_set_sensitive (main_vbox, FALSE); + if (url) + camel_url_free (url); return; } else gtk_widget_set_sensitive (main_vbox, TRUE); @@ -597,6 +599,8 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string) done: gtk_widget_show_all (main_vbox); + if (url) + camel_url_free (url); } static void @@ -737,6 +741,7 @@ setup_service (MailAccountGuiService *gsvc, MailConfigService *service) has_auth = TRUE; } + camel_url_free (url); gtk_toggle_button_set_active (gsvc->remember, service->save_passwd); @@ -1178,5 +1183,10 @@ mail_account_gui_destroy (MailAccountGui *gui) gtk_object_unref (GTK_OBJECT (gui->xml)); if (gui->extra_config) g_hash_table_destroy (gui->extra_config); + g_free (gui->drafts_folder.name); + g_free (gui->drafts_folder.uri); + g_free (gui->sent_folder.name); + g_free (gui->sent_folder.uri); + g_free (gui); } diff --git a/mail/mail-display.c b/mail/mail-display.c index 55eae01dca..266c46e1fc 100644 --- a/mail/mail-display.c +++ b/mail/mail-display.c @@ -862,8 +862,10 @@ on_url_requested (GtkHTML *html, const char *url, GtkHTMLStream *handle, g_return_if_fail (urls != NULL); user_data = g_hash_table_lookup (urls, url); - if (user_data == NULL) + if (user_data == NULL) { + gtk_html_end (html, handle, GTK_HTML_STREAM_ERROR); return; + } if (strncmp (url, "cid:", 4) == 0) { CamelMedium *medium = user_data; diff --git a/mail/mail-ops.c b/mail/mail-ops.c index e4b5e111d4..c97144e1e0 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -334,9 +334,8 @@ fetch_mail_fetch(struct _mail_msg *mm) /* if we are not to delete the messages, save the UID cache */ if (!fm->delete && !camel_exception_is_set (&mm->ex)) camel_uid_cache_save (cache); - - camel_uid_cache_destroy (cache); } + camel_uid_cache_destroy (cache); camel_folder_free_uids (folder, folder_uids); } else { filter_folder_filter (mm); diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c index 2b300272f3..0cf840424d 100644 --- a/mail/mail-send-recv.c +++ b/mail/mail-send-recv.c @@ -398,7 +398,7 @@ static void receive_status (CamelFilterDriver *driver, enum camel_filter_status_t status, int pc, const char *desc, void *data) { struct _send_info *info = data; - time_t now; + time_t now = time(0); /* let it flow through to the folder, every now and then too? */ g_hash_table_foreach(info->data->folders, (GHFunc)update_folders, &now); diff --git a/mail/session.c b/mail/session.c index 28694f39a1..42125c7b04 100644 --- a/mail/session.c +++ b/mail/session.c @@ -124,6 +124,7 @@ auth_callback (CamelAuthCallbackMode mode, char *data, gboolean secret, { char *key, *ans, *url; gboolean accept; + gpointer old_key, old_data; if (service) { url = camel_url_to_string (service->url, CAMEL_URL_HIDE_PASSWORD | CAMEL_URL_HIDE_PARAMS); @@ -134,20 +135,18 @@ auth_callback (CamelAuthCallbackMode mode, char *data, gboolean secret, switch (mode) { case CAMEL_AUTHENTICATOR_TELL: + if (g_hash_table_lookup_extended (passwords, key, + &old_key, &old_data)) { + g_free (old_data); + g_free (key); + key = old_key; + } + if (!data) { g_hash_table_remove (passwords, key); g_free (key); } else { - gpointer old_key, old_data; - - if (g_hash_table_lookup_extended (passwords, key, - &old_key, - &old_data)) { - g_hash_table_insert (passwords, old_key, data); - g_free (old_data); - g_free (key); - } else - g_hash_table_insert (passwords, key, data); + g_hash_table_insert (passwords, key, data); } return NULL; |