aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Williams <peterw@ximian.com>2001-07-14 01:55:27 +0800
committerPeter Williams <peterw@src.gnome.org>2001-07-14 01:55:27 +0800
commita099cf6547610d141567b95681998c7ae6af2633 (patch)
tree61df81573059e2145709f849746d5f02271adca8
parent50f88cdb6020d631a1aa11a5ad3e3628fcdec98f (diff)
downloadgsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.tar
gsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.tar.gz
gsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.tar.bz2
gsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.tar.lz
gsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.tar.xz
gsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.tar.zst
gsoc2013-evolution-a099cf6547610d141567b95681998c7ae6af2633.zip
Segfault prevention here if we lose the race with
2001-07-13 Peter Williams <peterw@ximian.com> * mail-callbacks.c (expunge_folder): Segfault prevention here if we lose the race with message_list_set_hidedeleted(). svn path=/trunk/; revision=11092
-rw-r--r--mail/ChangeLog3
-rw-r--r--mail/mail-callbacks.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 13e4833c93..cf7a9a0562 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,8 @@
2001-07-13 Peter Williams <peterw@ximian.com>
+ * mail-callbacks.c (expunge_folder): Segfault prevention here if we lose
+ the race with message_list_set_hidedeleted().
+
* mail-vfolder.c (unlist_vfolder): New function. If a vfolder in our list
gets finalized, NULL out info->folder (Is it wrong if this happens?) Also,
locking issues?
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index 0800886a7f..8e97ac6963 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -1653,8 +1653,9 @@ expunge_folder (BonoboUIComponent *uih, void *user_data, const char *path)
/* Only blank the mail display if the message being
viewed is one of those to be expunged */
+ /* We have a race here if the above hidedeleted hides loaded_uid */
info = camel_folder_get_message_info (fb->folder, fb->loaded_uid);
- if (info->flags & CAMEL_MESSAGE_DELETED)
+ if (info && info->flags & CAMEL_MESSAGE_DELETED)
mail_display_set_message (fb->mail_display, NULL);
fb->expunging = fb->folder;