# HG changeset patch # User Christian Brabandt # Date 1472993106 -7200 # Node ID b80ad55d62d8bde8c16ec66789ddccbf39542097 # Parent c78b9de182b6835989775129739a28a0746e2c65 commit https://github.com/vim/vim/commit/bc54f3f3fed4dc3556df8c46cee6739d211b0eb2 Author: Bram Moolenaar Date: Sun Sep 4 14:34:28 2016 +0200 patch 7.4.2322 Problem: Access memory beyond the end of the line. (Dominique Pelle) Solution: Adjust the cursor column. diff --git a/src/move.c b/src/move.c --- a/src/move.c +++ b/src/move.c @@ -2479,6 +2479,7 @@ onepage(int dir, long count) foldAdjustCursor(); #endif cursor_correct(); + check_cursor_col(); if (retval == OK) beginline(BL_SOL | BL_FIX); curwin->w_valid &= ~(VALID_WCOL|VALID_WROW|VALID_VIRTCOL); diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim --- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -398,6 +398,15 @@ func! Test_normal14_page() bw! endfu +func! Test_normal14_page_eol() + 10new + norm oxxxxxxx + exe "norm 2\" + " check with valgrind that cursor is put back in column 1 + exe "norm 2\" + bw! +endfunc + func! Test_normal15_z_scroll_vert() " basic test for z commands that scroll the window call Setup_NewWindow() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2322, +/**/ 2321, /**/ 2320,