patch 8.2.3678: illegal memory access

Problem:    Illegal memory access.
Solution:   Ignore changed indent when computing byte offset.
diff --git a/src/register.c b/src/register.c
index 00b8b4b..3fc8b63 100644
--- a/src/register.c
+++ b/src/register.c
@@ -2099,6 +2099,7 @@
 	else
 	{
 	    linenr_T	new_lnum = new_cursor.lnum;
+	    size_t	len;
 
 	    // Insert at least one line.  When y_type is MCHAR, break the first
 	    // line in two.
@@ -2211,11 +2212,12 @@
 	    // Put the '] mark on the first byte of the last inserted character.
 	    // Correct the length for change in indent.
 	    curbuf->b_op_end.lnum = new_lnum;
-	    col = (colnr_T)STRLEN(y_array[y_size - 1]) - lendiff;
+	    len = STRLEN(y_array[y_size - 1]);
+	    col = (colnr_T)len - lendiff;
 	    if (col > 1)
 		curbuf->b_op_end.col = col - 1
 				- mb_head_off(y_array[y_size - 1],
-						y_array[y_size - 1] + col - 1);
+						y_array[y_size - 1] + len - 1);
 	    else
 		curbuf->b_op_end.col = 0;
 
diff --git a/src/version.c b/src/version.c
index 0adbdb7..b7a93ed 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3678,
+/**/
     3677,
 /**/
     3676,