From 98a336dd497d3422e7efeef9f24cc9e25aeb8a49 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 20 Jan 2020 20:22:30 +0100 Subject: [PATCH] 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) --- src/edit.c | 4 ++-- src/testdir/test_search.vim | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/edit.c b/src/edit.c index a20fd3d..a1836c9 100644 --- a/src/edit.c +++ b/src/edit.c @@ -4947,9 +4947,9 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap) 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) diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim index ac0881c..e74681f 100644 --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -1380,3 +1380,8 @@ func Test_search_with_invalid_range() bwipe! call delete('Xrangesearch') endfunc + +func Test_search_special() + " this was causing illegal memory access + exe "norm /\x80PS" +endfunc -- 2.33.0