0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 8.2.3063: crash when switching 'cryptmethod' to xchaha20 with undo file

Problem:    Crash when switching 'cryptmethod' to xchaha20 with an existing
            undo file. (Martin Tournoij)
Solution:   Disable reading undo file when decoding can't be done inplace.
            (issue #8467)
This commit is contained in:
Bram Moolenaar
2021-06-27 14:08:24 +02:00
parent 4cd5c52d64
commit 65aee0b714
3 changed files with 22 additions and 2 deletions

View File

@@ -1298,9 +1298,17 @@ retry:
* At start of file: Check for magic number of encryption.
*/
if (filesize == 0 && size > 0)
{
cryptkey = check_for_cryptkey(cryptkey, ptr, &size,
&filesize, newfile, sfname,
&did_ask_for_key);
# ifdef CRYPT_NOT_INPLACE
if (curbuf->b_cryptstate != NULL
&& !crypt_works_inplace(curbuf->b_cryptstate))
// reading undo file requires crypt_decode_inplace()
read_undo_file = FALSE;
# endif
}
/*
* Decrypt the read bytes. This is done before checking for
* EOF because the crypt layer may be buffering.