mirror of
https://github.com/vim/vim.git
synced 2025-10-03 05:14:07 -04:00
patch 8.2.3585: crash when passing float to "term_rows" of term_start()
Problem: Crash when passing float to "term_rows" in the options argument of term_start(). (Virginia Senioria) Solution: Bail out if the argument is not a number. (closes #9116)
This commit is contained in:
@@ -424,10 +424,14 @@ get_job_options(typval_T *tv, jobopt_T *opt, int supported, int supported2)
|
|||||||
}
|
}
|
||||||
else if (STRCMP(hi->hi_key, "term_rows") == 0)
|
else if (STRCMP(hi->hi_key, "term_rows") == 0)
|
||||||
{
|
{
|
||||||
|
int error = FALSE;
|
||||||
|
|
||||||
if (!(supported2 & JO2_TERM_ROWS))
|
if (!(supported2 & JO2_TERM_ROWS))
|
||||||
break;
|
break;
|
||||||
opt->jo_set2 |= JO2_TERM_ROWS;
|
opt->jo_set2 |= JO2_TERM_ROWS;
|
||||||
opt->jo_term_rows = tv_get_number(item);
|
opt->jo_term_rows = tv_get_number_chk(item, &error);
|
||||||
|
if (error)
|
||||||
|
return FAIL;
|
||||||
}
|
}
|
||||||
else if (STRCMP(hi->hi_key, "term_cols") == 0)
|
else if (STRCMP(hi->hi_key, "term_cols") == 0)
|
||||||
{
|
{
|
||||||
|
@@ -4473,7 +4473,8 @@ static VTermStateFallbacks state_fallbacks = {
|
|||||||
static void *
|
static void *
|
||||||
vterm_malloc(size_t size, void *data UNUSED)
|
vterm_malloc(size_t size, void *data UNUSED)
|
||||||
{
|
{
|
||||||
return alloc_clear(size);
|
// make sure that the length is not zero
|
||||||
|
return alloc_clear(size == 0 ? 1L : size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -467,6 +467,10 @@ func Test_terminal_size()
|
|||||||
bwipe!
|
bwipe!
|
||||||
call assert_equal([7, 27], size)
|
call assert_equal([7, 27], size)
|
||||||
|
|
||||||
|
if has('float')
|
||||||
|
call assert_fails("call term_start(cmd, {'term_rows': 10.0})", 'E805:')
|
||||||
|
endif
|
||||||
|
|
||||||
call delete('Xtext')
|
call delete('Xtext')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -757,6 +757,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 */
|
||||||
|
/**/
|
||||||
|
3585,
|
||||||
/**/
|
/**/
|
||||||
3584,
|
3584,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user