aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/providers/imap/camel-imap-folder.c6
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));