Patch 8.2.3585
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)
Files: src/job.c, src/terminal.c, src/testdir/test_terminal.vim
*** ../vim-8.2.3584/src/job.c 2021-10-24 20:34:01.430895189 +0100
--- src/job.c 2021-11-12 15:56:58.630707435 +0000
***************
*** 424,433 ****
}
else if (STRCMP(hi->hi_key, "term_rows") == 0)
{
if (!(supported2 & JO2_TERM_ROWS))
break;
opt->jo_set2 |= JO2_TERM_ROWS;
! opt->jo_term_rows = tv_get_number(item);
}
else if (STRCMP(hi->hi_key, "term_cols") == 0)
{
--- 424,437 ----
}
else if (STRCMP(hi->hi_key, "term_rows") == 0)
{
+ int error = FALSE;
+
if (!(supported2 & JO2_TERM_ROWS))
break;
opt->jo_set2 |= JO2_TERM_ROWS;
! opt->jo_term_rows = tv_get_number_chk(item, &error);
! if (error)
! return FAIL;
}
else if (STRCMP(hi->hi_key, "term_cols") == 0)
{
*** ../vim-8.2.3584/src/terminal.c 2021-10-22 18:55:40.818752232 +0100
--- src/terminal.c 2021-11-12 15:54:18.283169091 +0000
***************
*** 4473,4479 ****
static void *
vterm_malloc(size_t size, void *data UNUSED)
{
! return alloc_clear(size);
}
static void
--- 4473,4480 ----
static void *
vterm_malloc(size_t size, void *data UNUSED)
{
! // make sure that the length is not zero
! return alloc_clear(size == 0 ? 1L : size);
}
static void
*** ../vim-8.2.3584/src/testdir/test_terminal.vim 2021-10-16 13:00:10.940165406 +0100
--- src/testdir/test_terminal.vim 2021-11-12 15:56:37.810247070 +0000
***************
*** 467,472 ****
--- 467,476 ----
bwipe!
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')
endfunc
*** ../vim-8.2.3584/src/version.c 2021-11-12 11:25:06.291264320 +0000
--- src/version.c 2021-11-12 16:00:54.287932990 +0000
***************
*** 759,760 ****
--- 759,762 ----
{ /* Add new patch number below this line */
+ /**/
+ 3585,
/**/
--
"Shoot for the moon. Even if you miss, you'll land among the stars."
/// Bram Moolenaar -- Br...@Moolenaar.net --
http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///