To: vim_dev@googlegroups.com Subject: Patch 8.2.3585 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@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 ///