$OpenBSD: patch-mail_items_c,v 1.1 2000/06/05 01:09:25 espie Exp $ --- mail_items.c.orig Sun Mar 13 01:38:44 1994 +++ mail_items.c Mon Jun 5 02:43:44 2000 @@ -351,9 +351,18 @@ void MailBoxClean() { MailItem *item; - - for (item = TheMailItems; item != NULL; item = item->next) + MailItem *next_item; + + for (item = TheMailItems; item != NULL; item = next_item) { + /* + * Save item->next here because if MailItemFree() is called, it will + * free item and we won't be able to access it after the call. + * Found by phkmalloc. Philippe Charnier (charnier@xp11.frmug.org) + * 11/96. + */ + next_item = item->next; + if (item->in_use == 0) { MailItemFree(item); @@ -651,6 +660,7 @@ char** annotations; { item->prev = TheMailItemsTail; item->prev->next = item; + TheMailItemsTail = item; } item->face = FaceDisplay(item);