changeset 19147:06ef1e438ac8 v8.2.0133

patch 8.2.0133: invalid memory access with search command Commit: https://github.com/vim/vim/commit/98a336dd497d3422e7efeef9f24cc9e25aeb8a49 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 20 20:22:30 2020 +0100 patch 8.2.0133: invalid memory access with search command Problem: Invalid memory access with search command. Solution: When :normal runs out of characters in bracketed paste mode break out of the loop.(closes #5511)
author Bram Moolenaar <Bram@vim.org>
date Mon, 20 Jan 2020 20:30:04 +0100
parents ba690b26dc16
children b75ea81727be
files src/edit.c src/testdir/test_search.vim src/version.c
diffstat 3 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/edit.c
+++ b/src/edit.c
@@ -4959,9 +4959,9 @@ bracketed_paste(paste_mode_T mode, int d
 	do
 	    c = vgetc();
 	while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
-	if (c == NUL || got_int)
+	if (c == NUL || got_int || (ex_normal_busy > 0 && c == Ctrl_C))
 	    // When CTRL-C was encountered the typeahead will be flushed and we
-	    // won't get the end sequence.
+	    // won't get the end sequence.  Except when using ":normal".
 	    break;
 
 	if (has_mbyte)
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1449,3 +1449,8 @@ func Test_searchdecl()
 
   bwipe!
 endfunc
+
+func Test_search_special()
+  " this was causing illegal memory access
+  exe "norm /\x80PS"
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    133,
+/**/
     132,
 /**/
     131,