# HG changeset patch # User Bram Moolenaar # Date 1677939304 -3600 # Node ID 7d94b1c0f292cb2afb284750e009d2d36e03364e # Parent 1b6ac899f07942ba8f1326284f15208d75543610 patch 9.0.1378: illegal memory access when using virtual editing Commit: https://github.com/vim/vim/commit/c99cbf8f289bdda5d4a77d7ec415850a520330ba Author: Bram Moolenaar Date: Sat Mar 4 14:13:10 2023 +0000 patch 9.0.1378: illegal memory access when using virtual editing Problem: Illegal memory access when using virtual editing. Solution: Make sure "startspaces" is not negative. diff --git a/src/register.c b/src/register.c --- a/src/register.c +++ b/src/register.c @@ -1245,6 +1245,8 @@ op_yank(oparg_T *oap, int deleting, int // double-count it. bd.startspaces = (ce - cs + 1) - oap->start.coladd; + if (bd.startspaces < 0) + bd.startspaces = 0; startcol++; } } diff --git a/src/testdir/test_virtualedit.vim b/src/testdir/test_virtualedit.vim --- a/src/testdir/test_virtualedit.vim +++ b/src/testdir/test_virtualedit.vim @@ -88,6 +88,16 @@ func Test_edit_change() set virtualedit= endfunc +func Test_edit_special_char() + new + se ve=all + norm a0 + sil! exe "norm o00000\k