patch 9.1.0126: Internal error when using upper-case mark in getregion()

Problem:  Internal error when passing mark in another buffer to
          getregion().
Solution: Don't allow marks in another buffer (zeertzjq)

closes: #14076

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Internal error when passing mark in another buffer to getregion()
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 071bf7d..981f8ab 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5508,12 +5508,12 @@
 
     // NOTE: var2fpos() returns static pointer.
     fp = var2fpos(&argvars[0], TRUE, &fnum, FALSE);
-    if (fp == NULL)
+    if (fp == NULL || (fnum >= 0 && fnum != curbuf->b_fnum))
 	return;
     p1 = *fp;
 
     fp = var2fpos(&argvars[1], TRUE, &fnum, FALSE);
-    if (fp == NULL)
+    if (fp == NULL || (fnum >= 0 && fnum != curbuf->b_fnum))
 	return;
     p2 = *fp;
 
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index 34c572e..8b43423 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -1712,7 +1712,16 @@
   call assert_fails(':echo "."->getregion([],"V")', 'E1174:')
   call assert_fails(':echo "."->getregion("$", {})', 'E1174:')
   call assert_fails(':echo [0, 1, 1, 0]->getregion("$", "v")', 'E1174:')
-
+  " using a mark in another buffer
+  new
+  let newbuf = bufnr()
+  call setline(1, range(10))
+  normal! GmA
+  wincmd p
+  call assert_equal([newbuf, 10, 1, 0], getpos("'A"))
+  call assert_equal([], getregion(".", "'A", 'v'))
+  call assert_equal([], getregion("'A", ".", 'v'))
+  exe newbuf .. 'bwipe!'
 
   bwipe!
   " Selection in starts or ends in the middle of a multibyte character
diff --git a/src/version.c b/src/version.c
index f4b2a1e..b8e79dd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    126,
+/**/
     125,
 /**/
     124,