From 6db6379e350eb77cd0b099bc97c43dee1a869ce3 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Wed, 25 Feb 2004 20:11:07 +0000 Subject: Free the uids *after* reporting Complete, otherwise we get an FMR if our 2004-02-25 Jeffrey Stedfast * camel-filter-driver.c (camel_filter_driver_filter_folder): Free the uids *after* reporting Complete, otherwise we get an FMR if our caller didn't pass in the uids. * camel-sasl-gssapi.c (gssapi_challenge): #ifdef out another gss_release_buffer() call as this function causes memory corruption if using Heimdal's implementation of Kerberos5. Yay Heimdal. svn path=/trunk/; revision=24872 --- camel/ChangeLog | 11 +++++++++++ camel/camel-filter-driver.c | 6 +++--- camel/camel-sasl-gssapi.c | 2 ++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index d8063fa667..1932b03d14 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,14 @@ +2004-02-25 Jeffrey Stedfast + + * camel-filter-driver.c (camel_filter_driver_filter_folder): Free + the uids *after* reporting Complete, otherwise we get an FMR if + our caller didn't pass in the uids. + + * camel-sasl-gssapi.c (gssapi_challenge): #ifdef out another + gss_release_buffer() call as this function causes memory + corruption if using Heimdal's implementation of Kerberos5. Yay + Heimdal. + 2004-02-25 * camel-folder.c (get_unread_message_count): do not avoid junk diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c index 1282188eb0..33eae9e843 100644 --- a/camel/camel-filter-driver.c +++ b/camel/camel-filter-driver.c @@ -1250,9 +1250,6 @@ camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folde camel_uid_cache_save_uid (cache, uids->pdata[i]); } - if (freeuids) - camel_folder_free_uids (folder, uids); - if (p->defaultfolder) { report_status (driver, CAMEL_FILTER_STATUS_PROGRESS, 100, _("Syncing folder")); camel_folder_sync (p->defaultfolder, FALSE, camel_exception_is_set (ex) ? NULL : ex); @@ -1261,6 +1258,9 @@ camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folde if (i == uids->len) report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Complete")); + if (freeuids) + camel_folder_free_uids (folder, uids); + g_free (source_url); return status; diff --git a/camel/camel-sasl-gssapi.c b/camel/camel-sasl-gssapi.c index 4f15c43821..c32a3583a2 100644 --- a/camel/camel-sasl-gssapi.c +++ b/camel/camel-sasl-gssapi.c @@ -297,7 +297,9 @@ gssapi_challenge (CamelSasl *sasl, GByteArray *token, CamelException *ex) if ((((unsigned char *) outbuf.value)[0] & DESIRED_SECURITY_LAYER) != DESIRED_SECURITY_LAYER) { camel_exception_set (ex, CAMEL_EXCEPTION_SERVICE_CANT_AUTHENTICATE, _("Unsupported security layer.")); +#ifndef HAVE_HEIMDAL_KRB5 gss_release_buffer (&minor, &outbuf); +#endif return NULL; } -- cgit v1.2.3