patch 8.0.0841: term_getline() may cause a crash

Problem:    term_getline() may cause a crash.
Solution:   Check that the row is valid. (Hirohito Higashi)
diff --git a/src/terminal.c b/src/terminal.c
index 4af0832..5622ce3 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1847,6 +1847,8 @@
 	int		len;
 	char_u		*p;
 
+	if (row < 0 || row >= term->tl_rows)
+	    return;
 	len = term->tl_cols * MB_MAXBYTES + 1;
 	p = alloc(len);
 	if (p == NULL)
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 97f7d5c..48ee1c4 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -81,6 +81,10 @@
 endfunc
 
 func Check_123(buf)
+  let l = term_scrape(a:buf, 0)
+  call assert_true(len(l) == 0)
+  let l = term_scrape(a:buf, 999)
+  call assert_true(len(l) == 0)
   let l = term_scrape(a:buf, 1)
   call assert_true(len(l) > 0)
   call assert_equal('1', l[0].chars)
@@ -93,6 +97,12 @@
     call assert_equal('#000000', l[0].bg)
   endif
 
+  let l = term_getline(a:buf, -1)
+  call assert_equal('', l)
+  let l = term_getline(a:buf, 0)
+  call assert_equal('', l)
+  let l = term_getline(a:buf, 999)
+  call assert_equal('', l)
   let l = term_getline(a:buf, 1)
   call assert_equal('123', l)
 endfunc
diff --git a/src/version.c b/src/version.c
index d4a334d..19ad732 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    841,
+/**/
     840,
 /**/
     839,