Patch 9.0.1484

4 views
Skip to first unread message

Bram Moolenaar

unread,
Apr 24, 2023, 1:12:08 PM4/24/23
to vim...@googlegroups.com

Patch 9.0.1484
Problem: Coverity warns for using invalid array index.
Solution: Add entry for Xchacha, even though it is not used.
Files: src/memline.c


*** ../vim-9.0.1483/src/memline.c 2023-04-23 17:50:14.853935966 +0100
--- src/memline.c 2023-04-24 18:09:04.776300439 +0100
***************
*** 64,70 ****
#define BLOCK0_ID1_C0 'c' // block 0 id 1 'cm' 0
#define BLOCK0_ID1_C1 'C' // block 0 id 1 'cm' 1
#define BLOCK0_ID1_C2 'd' // block 0 id 1 'cm' 2
! #define BLOCK0_ID1_C3 'S' // block 0 id 1 'cm' 3 - but not actually used

#if defined(FEAT_CRYPT)
static int id1_codes[] = {
--- 64,74 ----
#define BLOCK0_ID1_C0 'c' // block 0 id 1 'cm' 0
#define BLOCK0_ID1_C1 'C' // block 0 id 1 'cm' 1
#define BLOCK0_ID1_C2 'd' // block 0 id 1 'cm' 2
! // BLOCK0_ID1_C3 and BLOCK0_ID1_C4 are for libsodium enctyption. However, for
! // these the swapfile is disabled, thus they will not be used. Added for
! // consistency anyway.
! #define BLOCK0_ID1_C3 'S' // block 0 id 1 'cm' 3
! #define BLOCK0_ID1_C4 's' // block 0 id 1 'cm' 4

#if defined(FEAT_CRYPT)
static int id1_codes[] = {
***************
*** 72,77 ****
--- 76,82 ----
BLOCK0_ID1_C1, // CRYPT_M_BF
BLOCK0_ID1_C2, // CRYPT_M_BF2
BLOCK0_ID1_C3, // CRYPT_M_SOD - Unused!
+ BLOCK0_ID1_C4, // CRYPT_M_SOD2 - Unused!
};
#endif

***************
*** 444,449 ****
--- 449,456 ----

/*
* Prepare encryption for "buf" with block 0 "b0p".
+ * Note: should not be called with libsodium encryption, since xchacha20 does
+ * not support swapfile encryption.
*/
static void
ml_set_b0_crypt(buf_T *buf, ZERO_BL *b0p)
***************
*** 494,507 ****
return; // no memfile yet, nothing to do
old_method = crypt_method_nr_from_name(old_cm);

! // Swapfile encryption not supported by XChaCha20
! if (crypt_method_is_sodium(crypt_get_method_nr(buf)) && *buf->b_p_key != NUL)
{
// close the swapfile
mf_close_file(buf, TRUE);
buf->b_p_swf = FALSE;
return;
}
// First make sure the swapfile is in a consistent state, using the old
// key and method.
{
--- 501,517 ----
return; // no memfile yet, nothing to do
old_method = crypt_method_nr_from_name(old_cm);

! // Swapfile encryption is not supported by XChaCha20, therefore disable the
! // swapfile to avoid plain text being written to disk.
! if (crypt_method_is_sodium(crypt_get_method_nr(buf))
! && *buf->b_p_key != NUL)
{
// close the swapfile
mf_close_file(buf, TRUE);
buf->b_p_swf = FALSE;
return;
}
+
// First make sure the swapfile is in a consistent state, using the old
// key and method.
{
*** ../vim-9.0.1483/src/version.c 2023-04-24 17:15:20.371257120 +0100
--- src/version.c 2023-04-24 18:05:33.124364494 +0100
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1484,
/**/

--
We apologise again for the fault in the subtitles. Those responsible for
sacking the people who have just been sacked have been sacked.
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages