patch 8.2.1910: reading past the end of the command line

Problem:    Reading past the end of the command line.
Solution:   Check for NUL. (closes #7204)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 5e9eeb7..97d4b42 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2958,8 +2958,7 @@
 	cmod->cmod_save_ei = NULL;
     }
 
-    if (cmod->cmod_filter_regmatch.regprog != NULL)
-	vim_regfree(cmod->cmod_filter_regmatch.regprog);
+    vim_regfree(cmod->cmod_filter_regmatch.regprog);
 
     if (cmod->cmod_save_msg_silent > 0)
     {
@@ -4696,6 +4695,8 @@
 	{
 	    p += 2;
 	    (void)skip_expr(&p, NULL);
+	    if (*p == NUL)		// stop at NUL after CTRL-V
+		break;
 	}
 #endif
 
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 6a84b1c..de3e3a1 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -1832,4 +1832,11 @@
   bwipe!
 endfunc
 
+func Test_read_invalid()
+  set encoding=latin1
+  " This was not properly checking for going past the end.
+  call assert_fails('r`=', 'E484')
+  set encoding=utf-8
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index ac8155a..04bfc7d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1910,
+/**/
     1909,
 /**/
     1908,