diff options
-rw-r--r-- | camel/ChangeLog | 7 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 88fab1eafc..7e8e4f0481 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,10 @@ +2001-07-14 Jeffrey Stedfast <fejj@ximian.com> + + * providers/imap/camel-imap-folder.c (camel_imap_folder_changed): + If the message info for an expunged message is NULL, then just + break out - maybe a message was expunged that we were never + notified even existed? + 2001-07-13 Jeffrey Stedfast <fejj@ximian.com> * camel-mime-utils.c (rfc2047_decode_word): Added a hack to diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c index 1d119cf4d0..a6953c524e 100644 --- a/camel/providers/imap/camel-imap-folder.c +++ b/camel/providers/imap/camel-imap-folder.c @@ -1723,6 +1723,12 @@ camel_imap_folder_changed (CamelFolder *folder, int exists, for (i = 0; i < expunged->len; i++) { id = g_array_index (expunged, int, i); info = camel_folder_summary_index (folder->summary, id - 1); + if (info == NULL) { + /* FIXME: danw: does this mean that the summary is corrupt? */ + /* I guess a message that we never retrieved got expunged? */ + break; + } + camel_folder_change_info_remove_uid (changes, camel_message_info_uid (info)); CAMEL_IMAP_FOLDER_LOCK (imap_folder, cache_lock); camel_imap_message_cache_remove (imap_folder->cache, camel_message_info_uid (info)); |