fix CVE-2022-2264 CVE-2022-2257 CVE-2022-2286 CVE-2022-2287
(cherry picked from commit abed0f93104ac6dbfb93cee247292b9f7e4036e3)
This commit is contained in:
parent
df08c41b3b
commit
de9879591c
53
backport-CVE-2022-2257.patch
Normal file
53
backport-CVE-2022-2257.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From 083692d598139228e101b8c521aaef7bcf256e9a Mon Sep 17 00:00:00 2001
|
||||
From: Bram Moolenaar <Bram@vim.org>
|
||||
Date: Wed, 29 Jun 2022 21:16:58 +0100
|
||||
Subject: [PATCH] patch 9.0.0009: going past the end of a menu item with only
|
||||
modifier
|
||||
|
||||
Problem: Going past the end of a menu item with only modifier.
|
||||
Solution: Check for NUL.
|
||||
---
|
||||
src/message.c | 4 ++--
|
||||
src/testdir/test_menu.vim | 14 ++++++++++++++
|
||||
2 files changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/message.c b/src/message.c
|
||||
index 363dbe1..679a992 100644
|
||||
--- a/src/message.c
|
||||
+++ b/src/message.c
|
||||
@@ -1735,8 +1735,8 @@ str2special(
|
||||
*sp = str + 1;
|
||||
}
|
||||
else
|
||||
- // single-byte character or illegal byte
|
||||
- *sp = str + 1;
|
||||
+ // single-byte character, NUL or illegal byte
|
||||
+ *sp = str + (*str == NUL ? 0 : 1);
|
||||
|
||||
/* Make special keys and C0 control characters in <> form, also <M-Space>.
|
||||
* Use <Space> only for lhs of a mapping. */
|
||||
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
|
||||
index 0d6b78e..7e411cf 100644
|
||||
--- a/src/testdir/test_menu.vim
|
||||
+++ b/src/testdir/test_menu.vim
|
||||
@@ -84,3 +84,17 @@ func Test_menu_commands()
|
||||
|
||||
unlet g:did_menu
|
||||
endfun
|
||||
+
|
||||
+func Test_only_modifier()
|
||||
+ exe "tmenu a.b \x80\xfc0"
|
||||
+ let exp =<< trim [TEXT]
|
||||
+ --- Menus ---
|
||||
+ 500 a
|
||||
+ 500 b
|
||||
+ t - <T-2-^@>
|
||||
+ [TEXT]
|
||||
+ call assert_equal(exp, split(execute('tmenu'), "\n"))
|
||||
+
|
||||
+ tunmenu a.b
|
||||
+endfunc
|
||||
+
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
49
backport-CVE-2022-2264.patch
Normal file
49
backport-CVE-2022-2264.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From d25f003342aca9889067f2e839963dfeccf1fe05 Mon Sep 17 00:00:00 2001
|
||||
From: Bram Moolenaar <Bram@vim.org>
|
||||
Date: Thu, 30 Jun 2022 12:30:19 +0100
|
||||
Subject: [PATCH] patch 9.0.0011: reading beyond the end of the line with put
|
||||
command
|
||||
|
||||
Problem: Reading beyond the end of the line with put command.
|
||||
Solution: Adjust the end mark position.
|
||||
---
|
||||
src/register.c | 2 ++
|
||||
src/testdir/test_put.vim | 12 ++++++++++++
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/src/register.c b/src/register.c
|
||||
index 87689f7..51c14b8 100644
|
||||
--- a/src/register.c
|
||||
+++ b/src/register.c
|
||||
@@ -1819,6 +1819,8 @@ do_put(
|
||||
vim_memset(ptr, ' ', (size_t)spaces);
|
||||
ptr += spaces;
|
||||
}
|
||||
+ else
|
||||
+ totlen -= spaces; // didn't use these spaces
|
||||
}
|
||||
// may insert some spaces after the new text
|
||||
vim_memset(ptr, ' ', (size_t)bd.endspaces);
|
||||
diff --git a/src/testdir/test_put.vim b/src/testdir/test_put.vim
|
||||
index 6df04cf..c8d306a 100644
|
||||
--- a/src/testdir/test_put.vim
|
||||
+++ b/src/testdir/test_put.vim
|
||||
@@ -152,3 +152,15 @@ func Test_put_empty_register()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
+" this was putting the end mark after the end of the line
|
||||
+func Test_put_visual_mode()
|
||||
+ edit! SomeNewBuffer
|
||||
+ set selection=exclusive
|
||||
+ exe "norm o\t"
|
||||
+ m0
|
||||
+ sil! norm
p
p
|
||||
+
|
||||
+ bwipe!
|
||||
+ set selection&
|
||||
+endfunc
|
||||
+
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
59
backport-CVE-2022-2286.patch
Normal file
59
backport-CVE-2022-2286.patch
Normal file
@ -0,0 +1,59 @@
|
||||
From f12129f1714f7d2301935bb21d896609bdac221c Mon Sep 17 00:00:00 2001
|
||||
From: Bram Moolenaar <Bram@vim.org>
|
||||
Date: Fri, 1 Jul 2022 19:58:30 +0100
|
||||
Subject: [PATCH] patch 9.0.0020: with some completion reading past end of
|
||||
string
|
||||
|
||||
Problem: With some completion reading past end of string.
|
||||
Solution: Check the length of the string.
|
||||
---
|
||||
src/insexpand.c | 14 ++++++++++++--
|
||||
src/testdir/test_ins_complete.vim | 7 +++++++
|
||||
2 files changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/insexpand.c b/src/insexpand.c
|
||||
index 50e0579..66a836e 100644
|
||||
--- a/src/insexpand.c
|
||||
+++ b/src/insexpand.c
|
||||
@@ -2038,11 +2038,21 @@ ins_compl_prep(int c)
|
||||
// but only do this, if the Popup is still visible
|
||||
if (c == Ctrl_E)
|
||||
{
|
||||
+ char_u *p = NULL;
|
||||
+
|
||||
ins_compl_delete();
|
||||
if (compl_leader != NULL)
|
||||
- ins_bytes(compl_leader + ins_compl_len());
|
||||
+ p = compl_leader;
|
||||
else if (compl_first_match != NULL)
|
||||
- ins_bytes(compl_orig_text + ins_compl_len());
|
||||
+ p = compl_orig_text;
|
||||
+ if (p != NULL)
|
||||
+ {
|
||||
+ int compl_len = ins_compl_len();
|
||||
+ int len = (int)STRLEN(p);
|
||||
+
|
||||
+ if (len > compl_len)
|
||||
+ ins_bytes_len(p + compl_len, len - compl_len);
|
||||
+ }
|
||||
retval = TRUE;
|
||||
}
|
||||
|
||||
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
|
||||
index 8f584d3..b7cfd29 100644
|
||||
--- a/src/testdir/test_ins_complete.vim
|
||||
+++ b/src/testdir/test_ins_complete.vim
|
||||
@@ -390,3 +390,10 @@ func Test_ins_complete_add()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
+func Test_complete_overrun()
|
||||
+ " this was going past the end of the copied text
|
||||
+ new
|
||||
+ sil norm si0s0
|
||||
+ bwipe!
|
||||
+endfunc
|
||||
+
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
90
backport-CVE-2022-2287.patch
Normal file
90
backport-CVE-2022-2287.patch
Normal file
@ -0,0 +1,90 @@
|
||||
From 5e59ea54c0c37c2f84770f068d95280069828774 Mon Sep 17 00:00:00 2001
|
||||
From: Bram Moolenaar <Bram@vim.org>
|
||||
Date: Fri, 1 Jul 2022 22:26:20 +0100
|
||||
Subject: [PATCH] patch 9.0.0021: invalid memory access when adding word to
|
||||
spell word list
|
||||
|
||||
Problem: Invalid memory access when adding word with a control character to
|
||||
the internal spell word list.
|
||||
Solution: Disallow adding a word with control characters or a trailing
|
||||
slash.
|
||||
---
|
||||
src/spellfile.c | 21 +++++++++++++++++++--
|
||||
src/testdir/test_spell.vim | 15 +++++++++++++++
|
||||
2 files changed, 34 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/spellfile.c b/src/spellfile.c
|
||||
index 5171572..aeeb6ad 100644
|
||||
--- a/src/spellfile.c
|
||||
+++ b/src/spellfile.c
|
||||
@@ -4343,6 +4343,23 @@ wordtree_alloc(spellinfo_T *spin)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * Return TRUE if "word" contains valid word characters.
|
||||
+ * Control characters and trailing '/' are invalid. Space is OK.
|
||||
+ */
|
||||
+ static int
|
||||
+valid_spell_word(char_u *word)
|
||||
+{
|
||||
+ char_u *p;
|
||||
+
|
||||
+ if (enc_utf8 && !utf_valid_string(word, NULL))
|
||||
+ return FALSE;
|
||||
+ for (p = word; *p != NUL; p += mb_ptr2len(p))
|
||||
+ if (*p < ' ' || (p[0] == '/' && p[1] == NUL))
|
||||
+ return FALSE;
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Store a word in the tree(s).
|
||||
* Always store it in the case-folded tree. For a keep-case word this is
|
||||
* useful when the word can also be used with all caps (no WF_FIXCAP flag) and
|
||||
@@ -4367,7 +4384,7 @@ store_word(
|
||||
char_u *p;
|
||||
|
||||
// Avoid adding illegal bytes to the word tree.
|
||||
- if (enc_utf8 && !utf_valid_string(word, NULL))
|
||||
+ if (!valid_spell_word(word))
|
||||
return FAIL;
|
||||
|
||||
(void)spell_casefold(word, len, foldword, MAXWLEN);
|
||||
@@ -6171,7 +6188,7 @@ spell_add_word(
|
||||
int i;
|
||||
char_u *spf;
|
||||
|
||||
- if (enc_utf8 && !utf_valid_string(word, NULL))
|
||||
+ if (!valid_spell_word(word))
|
||||
{
|
||||
emsg(_(e_illegal_character_in_word));
|
||||
return;
|
||||
diff --git a/src/testdir/test_spell.vim b/src/testdir/test_spell.vim
|
||||
index 1f79907..bc4f41d 100644
|
||||
--- a/src/testdir/test_spell.vim
|
||||
+++ b/src/testdir/test_spell.vim
|
||||
@@ -574,6 +574,21 @@ func Test_spell_screendump()
|
||||
call delete('XtestSpell')
|
||||
endfunc
|
||||
|
||||
+func Test_spell_good_word_invalid()
|
||||
+ " This was adding a word with a 0x02 byte, which causes havoc.
|
||||
+ enew
|
||||
+ norm o0
|
||||
+ sil! norm rzzWs00/
|
||||
+ 2
|
||||
+ sil! norm VzGprzzW
|
||||
+ sil! norm z=
|
||||
+
|
||||
+ bwipe!
|
||||
+ " clear the internal word list
|
||||
+ set enc=latin1
|
||||
+ set enc=utf-8
|
||||
+endfunc
|
||||
+
|
||||
let g:test_data_aff1 = [
|
||||
\"SET ISO8859-1",
|
||||
\"TRY esianrtolcdugmphbyfvkwjkqxz-\xEB\xE9\xE8\xEA\xEF\xEE\xE4\xE0\xE2\xF6\xFC\xFB'ESIANRTOLCDUGMPHBYFVKWJKQXZ",
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -0,0 +1,112 @@
|
||||
From ac402f4d64bec6b6efd809fef52f5b34627bf947 Mon Sep 17 00:00:00 2001
|
||||
From: zeertzjq <zeertzjq@outlook.com>
|
||||
Date: Wed, 4 May 2022 18:51:43 +0100
|
||||
Subject: [PATCH] patch 8.2.4867: listing of mapping with K_SPECIAL is wrong
|
||||
|
||||
Problem: Listing of mapping with K_SPECIAL is wrong.
|
||||
Solution: Adjust escaping of special characters. (closes #10351)
|
||||
---
|
||||
src/map.c | 12 +-----------
|
||||
src/message.c | 26 ++++++++++++++++++--------
|
||||
src/testdir/test_mapping.vim | 20 ++++++++++++++++++++
|
||||
3 files changed, 39 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/map.c b/src/map.c
|
||||
index 645cd10..98573b5 100644
|
||||
--- a/src/map.c
|
||||
+++ b/src/map.c
|
||||
@@ -186,17 +186,7 @@ showmap(
|
||||
if (*mp->m_str == NUL)
|
||||
msg_puts_attr("<Nop>", HL_ATTR(HLF_8));
|
||||
else
|
||||
- {
|
||||
- // Remove escaping of CSI, because "m_str" is in a format to be used
|
||||
- // as typeahead.
|
||||
- char_u *s = vim_strsave(mp->m_str);
|
||||
- if (s != NULL)
|
||||
- {
|
||||
- vim_unescape_csi(s);
|
||||
- msg_outtrans_special(s, FALSE, 0);
|
||||
- vim_free(s);
|
||||
- }
|
||||
- }
|
||||
+ msg_outtrans_special(mp->m_str, FALSE, 0);
|
||||
#ifdef FEAT_EVAL
|
||||
if (p_verbose > 0)
|
||||
last_set_msg(mp->m_script_ctx);
|
||||
diff --git a/src/message.c b/src/message.c
|
||||
index eae6e61..0898d90 100644
|
||||
--- a/src/message.c
|
||||
+++ b/src/message.c
|
||||
@@ -1716,19 +1716,29 @@ str2special(
|
||||
|
||||
if (has_mbyte && !IS_SPECIAL(c))
|
||||
{
|
||||
- int len = (*mb_ptr2len)(str);
|
||||
+ char_u *p;
|
||||
|
||||
- /* For multi-byte characters check for an illegal byte. */
|
||||
- if (has_mbyte && MB_BYTE2LEN(*str) > len)
|
||||
+ *sp = str;
|
||||
+ // Try to un-escape a multi-byte character after modifiers.
|
||||
+ p = mb_unescape(sp);
|
||||
+
|
||||
+ if (p == NULL)
|
||||
{
|
||||
- transchar_nonprint(buf, c);
|
||||
- *sp = str + 1;
|
||||
- return buf;
|
||||
+ int len = (*mb_ptr2len)(str);
|
||||
+
|
||||
+ // Check for an illegal byte.
|
||||
+ if (MB_BYTE2LEN(*str) > len)
|
||||
+ {
|
||||
+ transchar_nonprint(curbuf, buf, c);
|
||||
+ *sp = str + 1;
|
||||
+ return buf;
|
||||
+ }
|
||||
+ *sp = str + len;
|
||||
+ p = str;
|
||||
}
|
||||
/* Since 'special' is TRUE the multi-byte character 'c' will be
|
||||
* processed by get_special_key_name() */
|
||||
- c = (*mb_ptr2char)(str);
|
||||
- *sp = str + len;
|
||||
+ c = (*mb_ptr2char)(p);
|
||||
}
|
||||
else
|
||||
*sp = str + 1;
|
||||
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
|
||||
index 55e6af0..58c284d 100644
|
||||
--- a/src/testdir/test_mapping.vim
|
||||
+++ b/src/testdir/test_mapping.vim
|
||||
@@ -461,6 +461,26 @@ func Test_list_mappings()
|
||||
call assert_equal(['i <S-/> * ShiftSlash'], execute('imap')->trim()->split("\n"))
|
||||
iunmap <S-/>
|
||||
call assert_equal(['No mapping found'], execute('imap')->trim()->split("\n"))
|
||||
+
|
||||
+ nmap foo …
|
||||
+ call assert_equal(['n foo …'],
|
||||
+ \ execute('nmap foo')->trim()->split("\n"))
|
||||
+
|
||||
+ " modified character with K_SPECIAL byte in rhs
|
||||
+ nmap foo <M-…>
|
||||
+ call assert_equal(['n foo <M-…>'],
|
||||
+ \ execute('nmap foo')->trim()->split("\n"))
|
||||
+
|
||||
+ " character with K_SPECIAL byte in lhs
|
||||
+ nmap … foo
|
||||
+ call assert_equal(['n … foo'],
|
||||
+ \ execute('nmap …')->trim()->split("\n"))
|
||||
+
|
||||
+ " modified character with K_SPECIAL byte in lhs
|
||||
+ nmap <M-…> foo
|
||||
+ call assert_equal(['n <M-…> foo'],
|
||||
+ \ execute('nmap <M-…>')->trim()->split("\n"))
|
||||
+
|
||||
endfunc
|
||||
|
||||
func Test_expr_map_restore_cursor()
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -0,0 +1,153 @@
|
||||
From 0519ce00394474055bd58c089ea90a19986443eb Mon Sep 17 00:00:00 2001
|
||||
From: zeertzjq <zeertzjq@outlook.com>
|
||||
Date: Mon, 9 May 2022 12:16:19 +0100
|
||||
Subject: [PATCH] patch 8.2.4924: maparg() may return a string that cannot be
|
||||
reused
|
||||
|
||||
Problem: maparg() may return a string that cannot be reused.
|
||||
Solution: use msg_outtrans_special() instead of str2special().
|
||||
(closes #10384)
|
||||
---
|
||||
src/message.c | 35 +++++++++++++++--------------------
|
||||
src/option.c | 2 ++
|
||||
src/testdir/test_mapping.vim | 7 +++++++
|
||||
src/testdir/test_options.vim | 20 ++++++++++++++++++++
|
||||
4 files changed, 44 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/src/message.c b/src/message.c
|
||||
index 0898d90..363dbe1 100644
|
||||
--- a/src/message.c
|
||||
+++ b/src/message.c
|
||||
@@ -1637,6 +1637,9 @@ msg_outtrans_special(
|
||||
}
|
||||
else
|
||||
text = (char *)str2special(&str, from);
|
||||
+ if (text[0] != NUL && text[1] == NUL)
|
||||
+ // single-byte character or illegal byte
|
||||
+ text = (char *)transchar_byte((char_u)text[0]);
|
||||
len = vim_strsize((char_u *)text);
|
||||
if (maxlen > 0 && retval + len >= maxlen)
|
||||
break;
|
||||
@@ -1671,6 +1674,7 @@ str2special_save(
|
||||
|
||||
/*
|
||||
* Return the printable string for the key codes at "*sp".
|
||||
+ * On illegal byte return a string with only that byte.
|
||||
* Used for translating the lhs or rhs of a mapping to printable chars.
|
||||
* Advances "sp" to the next code.
|
||||
*/
|
||||
@@ -1714,7 +1718,7 @@ str2special(
|
||||
special = TRUE;
|
||||
}
|
||||
|
||||
- if (has_mbyte && !IS_SPECIAL(c))
|
||||
+ if (has_mbyte && !IS_SPECIAL(c) && MB_BYTE2LEN(c) > 1)
|
||||
{
|
||||
char_u *p;
|
||||
|
||||
@@ -1722,30 +1726,21 @@ str2special(
|
||||
// Try to un-escape a multi-byte character after modifiers.
|
||||
p = mb_unescape(sp);
|
||||
|
||||
- if (p == NULL)
|
||||
- {
|
||||
- int len = (*mb_ptr2len)(str);
|
||||
-
|
||||
- // Check for an illegal byte.
|
||||
- if (MB_BYTE2LEN(*str) > len)
|
||||
- {
|
||||
- transchar_nonprint(curbuf, buf, c);
|
||||
- *sp = str + 1;
|
||||
- return buf;
|
||||
- }
|
||||
- *sp = str + len;
|
||||
- p = str;
|
||||
- }
|
||||
- /* Since 'special' is TRUE the multi-byte character 'c' will be
|
||||
- * processed by get_special_key_name() */
|
||||
- c = (*mb_ptr2char)(p);
|
||||
+ if (p != NULL)
|
||||
+ // Since 'special' is TRUE the multi-byte character 'c' will be
|
||||
+ // processed by get_special_key_name()
|
||||
+ c = (*mb_ptr2char)(p);
|
||||
+ else
|
||||
+ // illegal byte
|
||||
+ *sp = str + 1;
|
||||
}
|
||||
else
|
||||
+ // single-byte character or illegal byte
|
||||
*sp = str + 1;
|
||||
|
||||
- /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
|
||||
+ /* Make special keys and C0 control characters in <> form, also <M-Space>.
|
||||
* Use <Space> only for lhs of a mapping. */
|
||||
- if (special || char2cells(c) > 1 || (from && c == ' '))
|
||||
+ if (special || c < ' ' || (from && c == ' '))
|
||||
return get_special_key_name(c, modifiers);
|
||||
buf[0] = c;
|
||||
buf[1] = NUL;
|
||||
diff --git a/src/option.c b/src/option.c
|
||||
index eb610dd..6a93a7b 100644
|
||||
--- a/src/option.c
|
||||
+++ b/src/option.c
|
||||
@@ -3878,6 +3878,8 @@ get_option_value(
|
||||
if ((char_u **)varp == &curbuf->b_p_key
|
||||
&& **(char_u **)(varp) != NUL)
|
||||
*stringval = vim_strsave((char_u *)"*****");
|
||||
+ else if ((char_u **)varp == &p_pt) // 'pastetoggle'
|
||||
+ *stringval = str2special_save(*(char_u **)(varp), FALSE);
|
||||
else
|
||||
#endif
|
||||
*stringval = vim_strsave(*(char_u **)(varp));
|
||||
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
|
||||
index 58c284d..9e32b38 100644
|
||||
--- a/src/testdir/test_mapping.vim
|
||||
+++ b/src/testdir/test_mapping.vim
|
||||
@@ -480,6 +480,13 @@ func Test_list_mappings()
|
||||
nmap <M-…> foo
|
||||
call assert_equal(['n <M-…> foo'],
|
||||
\ execute('nmap <M-…>')->trim()->split("\n"))
|
||||
+
|
||||
+ " illegal bytes
|
||||
+ let str = ":\x7f:\x80:\x90:\xd0:"
|
||||
+ exe 'nmap foo ' .. str
|
||||
+ call assert_equal(['n foo ' .. strtrans(str)],
|
||||
+ \ execute('nmap foo')->trim()->split("\n"))
|
||||
+ unlet str
|
||||
|
||||
endfunc
|
||||
|
||||
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
|
||||
index 7584465..e494cd9 100644
|
||||
--- a/src/testdir/test_options.vim
|
||||
+++ b/src/testdir/test_options.vim
|
||||
@@ -31,6 +31,26 @@ func Test_isfname()
|
||||
set isfname&
|
||||
endfunc
|
||||
|
||||
+" Test for getting the value of 'pastetoggle'
|
||||
+func Test_pastetoggle()
|
||||
+ " character with K_SPECIAL byte
|
||||
+ let &pastetoggle = '…'
|
||||
+ call assert_equal('…', &pastetoggle)
|
||||
+ call assert_equal("\n pastetoggle=…", execute('set pastetoggle?'))
|
||||
+
|
||||
+ " modified character with K_SPECIAL byte
|
||||
+ let &pastetoggle = '<M-…>'
|
||||
+ call assert_equal('<M-…>', &pastetoggle)
|
||||
+ call assert_equal("\n pastetoggle=<M-…>", execute('set pastetoggle?'))
|
||||
+
|
||||
+ " illegal bytes
|
||||
+ let str = ":\x7f:\x80:\x90:\xd0:"
|
||||
+ let &pastetoggle = str
|
||||
+ call assert_equal(str, &pastetoggle)
|
||||
+ call assert_equal("\n pastetoggle=" .. strtrans(str), execute('set pastetoggle?'))
|
||||
+ unlet str
|
||||
+endfunc
|
||||
+
|
||||
func Test_wildchar()
|
||||
" Empty 'wildchar' used to access invalid memory.
|
||||
call assert_fails('set wildchar=', 'E521:')
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
32
backport-patch-9.0.0022-spell-test-fails.patch
Normal file
32
backport-patch-9.0.0022-spell-test-fails.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 95afae6d1760b2efcc4968dbd3784799d24e9fdf Mon Sep 17 00:00:00 2001
|
||||
From: Bram Moolenaar <Bram@vim.org>
|
||||
Date: Fri, 1 Jul 2022 22:44:19 +0100
|
||||
Subject: [PATCH] patch 9.0.0022: spell test fails
|
||||
|
||||
Problem: Spell test fails.
|
||||
Solution: Expect new error is given.
|
||||
---
|
||||
src/testdir/test_spell_utf8.vim | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/testdir/test_spell_utf8.vim b/src/testdir/test_spell_utf8.vim
|
||||
index efdecdc..42288dc 100644
|
||||
--- a/src/testdir/test_spell_utf8.vim
|
||||
+++ b/src/testdir/test_spell_utf8.vim
|
||||
@@ -779,7 +779,12 @@ func Test_no_crash_with_weird_text()
|
||||
|
||||
END
|
||||
call setline(1, lines)
|
||||
- exe "%norm \<C-v>ez=>\<C-v>wzG"
|
||||
+ try
|
||||
+ exe "%norm \<C-v>ez=>\<C-v>wzG"
|
||||
+ catch /E1280:/
|
||||
+ let caught = 'yes'
|
||||
+ endtry
|
||||
+ call assert_equal('yes', caught)
|
||||
|
||||
bwipe!
|
||||
endfunc
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
15
vim.spec
15
vim.spec
@ -12,7 +12,7 @@
|
||||
Name: vim
|
||||
Epoch: 2
|
||||
Version: 8.2
|
||||
Release: 50
|
||||
Release: 51
|
||||
Summary: Vim is a highly configurable text editor for efficiently creating and changing any kind of text.
|
||||
License: Vim and MIT
|
||||
URL: http://www.vim.org
|
||||
@ -146,6 +146,13 @@ Patch6109: backport-CVE-2022-2285.patch
|
||||
Patch6110: backport-CVE-2022-2304.patch
|
||||
Patch6111: backport-CVE-2022-2344.patch
|
||||
Patch6112: backport-CVE-2022-2345.patch
|
||||
Patch6113: backport-CVE-2022-2264.patch
|
||||
Patch6114: backport-patch-8.2.4867-listing-of-mapping-with-K_SPECIAL-is-.patch
|
||||
Patch6115: backport-patch-8.2.4924-maparg-may-return-a-string-that-canno.patch
|
||||
Patch6116: backport-CVE-2022-2257.patch
|
||||
Patch6117: backport-CVE-2022-2286.patch
|
||||
Patch6118: backport-CVE-2022-2287.patch
|
||||
Patch6119: backport-patch-9.0.0022-spell-test-fails.patch
|
||||
|
||||
Patch9000: bugfix-rm-modify-info-version.patch
|
||||
|
||||
@ -534,6 +541,12 @@ popd
|
||||
%{_mandir}/man1/evim.*
|
||||
|
||||
%changelog
|
||||
* Wed Jul 13 2022 shixuantong <shixuantong@h-partners.com> - 2:8.2-51
|
||||
- Type:CVE
|
||||
- ID:CVE-2022-2264 CVE-2022-2257 CVE-2022-2286 CVE-2022-2287
|
||||
- SUG:NA
|
||||
- DESC:fix CVE-2022-2264 CVE-2022-2257 CVE-2022-2286 CVE-2022-2287
|
||||
|
||||
* Mon Jul 11 2022 shixuantong <shixuantong@h-partners.com> - 2:8.2-50
|
||||
- Type:CVE
|
||||
- ID:CVE-2022-2000 CVE-2022-2042 CVE-2022-2284 CVE-2022-2285 CVE-2022-2304 CVE-2022-2344 CVE-2022-2345
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user