diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-07-30 18:02:12 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-07-30 18:02:12 +0200 |
commit | f144a3fb73340fe22e08bd1fa77e27c9f55bb0af (patch) | |
tree | 9ed4598adea1ff572f94d228d96bcf38eb90e391 | |
parent | 43c007ff225bf5522e07f23f41bfaced573b0e98 (diff) | |
download | vim-git-f144a3fb73340fe22e08bd1fa77e27c9f55bb0af.tar.gz |
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.c | 2 | ||||
-rw-r--r-- | src/testdir/test_terminal.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c index 303566576..f526108c5 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 10fe4af61..acf69be33 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 33e7e3d77..f601bfd71 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, |