changeset 11872:ff8122091ec6 v8.0.0816

patch 8.0.0816: crash when using invalid buffer number commit https://github.com/vim/vim/commit/f144a3fb73340fe22e08bd1fa77e27c9f55bb0af Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 30 18:02:12 2017 +0200 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 https://github.com/vim/vim/issues/1899)
author Christian Brabandt <cb@256bit.org>
date Sun, 30 Jul 2017 18:15:04 +0200
parents d70c8377904e
children 8a2769a22c17
files src/terminal.c src/testdir/test_terminal.vim src/version.c
diffstat 3 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
 }
--- 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
--- 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,