]> granicus.if.org Git - neomutt/commit
Possible fix for random pager crashes.
authorRichard Russon <rich@flatcap.org>
Sun, 23 Oct 2016 17:18:08 +0000 (18:18 +0100)
committerRichard Russon <rich@flatcap.org>
Mon, 24 Oct 2016 14:47:11 +0000 (15:47 +0100)
commita75b414d2bd783af473fa85e49f46bffb1ccb0f6
tree5118c4e65d90049ffa4bd86a6ae12e05c5ae6cdb
parent1eee3b53431b88752ee778875a7c0ceed2b87d96
Possible fix for random pager crashes.

The crashes have been observed:
- in both local and remote mailboxes
- with/without notmuch
- always are some time has passed
- always have an invalid header pointer

Scenario:
- The Context holds an array of HEADER pointers.
- The pager is given a HEADER to display.
- Time passes and the mailbox changes.

mx_check_mailbox() adds new mails to the end of the Context's array,
calling mx_alloc_memory() if necessary.  The Context's totals are
updated by mx_update_context().

The only way a HEADER pointer could become invalid is if they email were
deleted/moved.  If we detect this has happened, we leave the pager.
curs_main.c
pager.c