]> granicus.if.org Git - mutt/commit
Turn IMAP_EXPUNGE_EXPECTED back off when syncing. (closes #3940).
authorKevin McCarthy <kevin@8t8.us>
Fri, 12 May 2017 16:15:00 +0000 (09:15 -0700)
committerKevin McCarthy <kevin@8t8.us>
Fri, 12 May 2017 16:15:00 +0000 (09:15 -0700)
commit619477acb6ca3c6b2a5e0e4f5e0fa0d586192390
tree5b6d6dc30cb993519f1f0095b0ad66a453ca1406
parent3908c4d93b907ed0c21bf4b36b99ee960b0213bc
Turn IMAP_EXPUNGE_EXPECTED back off when syncing. (closes #3940).

imap_sync_mailbox() turned on IMAP_EXPUNGE_EXPECTED when issuing a
EXPUNGE command during a sync.  However, it forgot to turn it back off.

That meant that an unexpected EXPUNGE that occurred during a
mx_check_mailbox -> imap_check_mailbox() -> imap_cmd_finish() call was
not setting
  idata->check_status = IMAP_EXPUNGE_PENDING;
and so imap_check_mailbox() was not returning MUTT_REOPENED.

This meant that although the Context had been changed, the index did
not run update_index(), resulting in a possible segfault.

Thanks to Uroš Juvan for reporting the issue, and his invaluable
description of how to reproduce the problem.
imap/imap.c