]> granicus.if.org Git - neomutt/commit
fix save_message()
authorRichard Russon <rich@flatcap.org>
Tue, 2 Apr 2019 12:39:06 +0000 (12:39 +0000)
committerRichard Russon <rich@flatcap.org>
Tue, 9 Apr 2019 13:16:04 +0000 (14:16 +0100)
commitb737f6fa067a5c8413707980698bc8e2c11f0ede
tree009d0dac22d29fe83b186668a049a3d1dc51a144
parentc9dd74b97f5e7c48af384adb7d645a7184a639b4
fix save_message()

Prevent a crash when reopening a Mailbox.

> How exactly do these changes prevent the crash from occurring?

It's all about how mx_mbox_open() handles flags.  These four examples
are where we have a Mailbox open in 'normal' mode and try to open it
again in 'append' mode.

'Append' mode only makes sense for 'mbox' and 'compress', but the flag
affects mx_mbox_open(). It causes the function to create a duplicate
Mailbox, which is then used and discarded. The original Mailbox is now
out of sync.

The workaround, simply hides the flag for mx_mbox_open(), but
temporarily sets the internal bool append. This means that we work with
one Mailbox.
commands.c