summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-07-30 18:02:12 +0200
committerBram Moolenaar <Bram@vim.org>2017-07-30 18:02:12 +0200
commitf144a3fb73340fe22e08bd1fa77e27c9f55bb0af (patch)
tree9ed4598adea1ff572f94d228d96bcf38eb90e391
parent43c007ff225bf5522e07f23f41bfaced573b0e98 (diff)
patch 8.0.0816: crash when using invalid buffer numberv8.0.0816
Problem: Crash when using invalid buffer number. Solution: Check for NULL buffer. (Yasuhiro Matsumoto, closes #1899)
-rw-r--r--src/terminal.c2
-rw-r--r--src/testdir/test_terminal.vim4
-rw-r--r--src/version.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 303566576e..f526108c59 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -1686,7 +1686,7 @@ term_get_buf(typval_T *argvars)
++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 10fe4af612..acf69be337 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -54,6 +54,9 @@ func Test_terminal_scrape()
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 @@ func Test_terminal_scrape()
call Check_123(buf)
exe buf . 'bwipe'
+ call delete('Xtext')
endfunc
diff --git a/src/version.c b/src/version.c
index 33e7e3d77b..f601bfd71b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 816,
+/**/
815,
/**/
814,