From a94120752344f04c3f6d7e088026e9a58f46fe64 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 2 Apr 2024 19:08:03 +0800 Subject: vim-patch:9.0.0581: adding a character for incsearch fails at end of line Problem: Adding a character for incsearch fails at end of line. Solution: Only check cursor line number. https://github.com/vim/vim/commit/d4566c14e71c55dcef05fb34ea94eba835831527 Co-authored-by: Bram Moolenaar --- src/nvim/move.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/nvim/move.c b/src/nvim/move.c index 52b65c0fef..e7416549f5 100644 --- a/src/nvim/move.c +++ b/src/nvim/move.c @@ -196,7 +196,7 @@ static void redraw_for_cursorcolumn(win_T *wp) int sms_marker_overlap(win_T *wp, int extra2) { // There is no marker overlap when in showbreak mode, thus no need to - // account for it. See grid_put_linebuf(). + // account for it. See wlv_put_linebuf(). if (*get_showbreak_value(wp) != NUL) { return 0; } @@ -621,7 +621,7 @@ int cursor_valid(win_T *wp) // w_topline must be valid, you may need to call update_topline() first! void validate_cursor(win_T *wp) { - check_cursor(wp); + check_cursor_lnum(wp); check_cursor_moved(wp); if ((wp->w_valid & (VALID_WCOL|VALID_WROW)) != (VALID_WCOL|VALID_WROW)) { curs_columns(wp, true); -- cgit From aeabd8e2455b979c70277ea83eb9f3375a37bc6f Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 3 Apr 2024 05:53:08 +0800 Subject: vim-patch:9.1.0254: [security]: Heap buffer overflow when calling complete_add() in 'cfu' Problem: [security]: Heap buffer overflow when calling complete_add() in the first call of 'completefunc' Solution: Call check_cursor() after calling 'completefunc' (zeertzjq) closes: vim/vim#14391 https://github.com/vim/vim/commit/0a419e07a705675ac159218f42c1daa151d2ceea --- src/nvim/insexpand.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index fe5faf8c10..7feb4f6661 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -2435,7 +2435,8 @@ static void expand_by_function(int type, char *base) } textlock--; - curwin->w_cursor = pos; // restore the cursor position + curwin->w_cursor = pos; // restore the cursor position + check_cursor(curwin); // make sure cursor position is valid, just in case validate_cursor(curwin); if (!equalpos(curwin->w_cursor, pos)) { emsg(_(e_compldel)); @@ -4059,6 +4060,7 @@ static int get_userdefined_compl_info(colnr_T curs_col) State = save_State; curwin->w_cursor = pos; // restore the cursor position + check_cursor(curwin); // make sure cursor position is valid, just in case validate_cursor(curwin); if (!equalpos(curwin->w_cursor, pos)) { emsg(_(e_compldel)); -- cgit