To: vim_dev@googlegroups.com Subject: Patch 9.0.1444 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 9.0.1444 Problem: Crash when passing NULL to setcmdline(). (Andreas Louv) Solution: Use tv_get_string() instead of using v_string directly. (closes #12231, closes #12227) Files: src/ex_getln.c, src/testdir/test_cmdline.vim *** ../vim-9.0.1443/src/ex_getln.c 2023-03-04 20:47:32.304617857 +0000 --- src/ex_getln.c 2023-04-12 16:18:26.109315842 +0100 *************** *** 4294,4300 **** } } ! rettv->vval.v_number = set_cmdline_str(argvars[0].vval.v_string, pos); } /* --- 4294,4301 ---- } } ! // Use tv_get_string() to handle a NULL string like an empty string. ! rettv->vval.v_number = set_cmdline_str(tv_get_string(&argvars[0]), pos); } /* *** ../vim-9.0.1443/src/testdir/test_cmdline.vim 2023-02-17 16:40:16.975600489 +0000 --- src/testdir/test_cmdline.vim 2023-04-12 16:19:52.553237309 +0100 *************** *** 3393,3398 **** --- 3393,3406 ---- func Test_setcmdline() func SetText(text, pos) + call assert_equal(0, setcmdline(test_null_string())) + call assert_equal('', getcmdline()) + call assert_equal(1, getcmdpos()) + + call assert_equal(0, setcmdline(''[: -1])) + call assert_equal('', getcmdline()) + call assert_equal(1, getcmdpos()) + autocmd CmdlineChanged * let g:cmdtype = expand('') call assert_equal(0, setcmdline(a:text)) call assert_equal(a:text, getcmdline()) *** ../vim-9.0.1443/src/version.c 2023-04-09 22:01:21.147306267 +0100 --- src/version.c 2023-04-12 16:15:55.145456140 +0100 *************** *** 697,698 **** --- 697,700 ---- { /* Add new patch number below this line */ + /**/ + 1444, /**/ -- TIM: But follow only if you are men of valour. For the entrance to this cave is guarded by a monster, a creature so foul and cruel that no man yet has fought with it and lived. Bones of full fifty men lie strewn about its lair ... "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// 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 ///