mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
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)
This commit is contained in:
@@ -1847,6 +1847,8 @@ f_term_getline(typval_T *argvars, typval_T *rettv)
|
|||||||
int len;
|
int len;
|
||||||
char_u *p;
|
char_u *p;
|
||||||
|
|
||||||
|
if (row < 0 || row >= term->tl_rows)
|
||||||
|
return;
|
||||||
len = term->tl_cols * MB_MAXBYTES + 1;
|
len = term->tl_cols * MB_MAXBYTES + 1;
|
||||||
p = alloc(len);
|
p = alloc(len);
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
|
@@ -81,6 +81,10 @@ func Test_terminal_hide_buffer()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Check_123(buf)
|
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)
|
let l = term_scrape(a:buf, 1)
|
||||||
call assert_true(len(l) > 0)
|
call assert_true(len(l) > 0)
|
||||||
call assert_equal('1', l[0].chars)
|
call assert_equal('1', l[0].chars)
|
||||||
@@ -93,6 +97,12 @@ func Check_123(buf)
|
|||||||
call assert_equal('#000000', l[0].bg)
|
call assert_equal('#000000', l[0].bg)
|
||||||
endif
|
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)
|
let l = term_getline(a:buf, 1)
|
||||||
call assert_equal('123', l)
|
call assert_equal('123', l)
|
||||||
endfunc
|
endfunc
|
||||||
|
@@ -769,6 +769,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
841,
|
||||||
/**/
|
/**/
|
||||||
840,
|
840,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user