patch 8.0.0816: crash when using invalid buffer number
Problem: Crash when using invalid buffer number.
Solution: Check for NULL buffer. (Yasuhiro Matsumoto, closes #1899)
diff --git a/src/terminal.c b/src/terminal.c
index 3035665..f526108 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1686,7 +1686,7 @@
++emsg_off;
buf = get_buf_tv(&argvars[0], FALSE);
--emsg_off;
- if (buf->b_term == NULL)
+ if (buf == NULL || buf->b_term == NULL)
return NULL;
return buf;
}
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 10fe4af..acf69be 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -54,6 +54,9 @@
call assert_equal(1, len(termlist))
call assert_equal(buf, termlist[0])
+ " Nothing happens with invalid buffer number
+ call term_wait(1234)
+
call term_wait(buf)
call Check_123(buf)
@@ -64,4 +67,5 @@
call Check_123(buf)
exe buf . 'bwipe'
+ call delete('Xtext')
endfunc
diff --git a/src/version.c b/src/version.c
index 33e7e3d..f601bfd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 816,
+/**/
815,
/**/
814,