changeset 19261:a20c66f13a6e v8.2.0189

patch 8.2.0189: cd() with NULL argument crashes Commit: https://github.com/vim/vim/commit/7cc96923c44bbcc541cbd211b6308d87a965f0c3 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jan 31 22:41:38 2020 +0100 patch 8.2.0189: cd() with NULL argument crashes Problem: cd() with NULL argument crashes. Solution: Check for NULL. (Ken Takata, closes https://github.com/vim/vim/issues/5558)
author Bram Moolenaar <Bram@vim.org>
date Fri, 31 Jan 2020 22:45:04 +0100
parents f2a4030c918a
children 1817ea8fe53f
files src/ex_docmd.c src/testdir/test_cd.vim src/version.c
diffstat 3 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -6572,7 +6572,7 @@ changedir_func(
     int		dir_differs;
     int		retval = FALSE;
 
-    if (allbuf_locked())
+    if (new_dir == NULL || allbuf_locked())
 	return FALSE;
 
     if (vim_strchr(p_cpo, CPO_CHDIR) != NULL && curbufIsChanged() && !forceit)
--- a/src/testdir/test_cd.vim
+++ b/src/testdir/test_cd.vim
@@ -101,6 +101,8 @@ func Test_chdir_func()
   call assert_fails("call chdir('dir-abcd')", 'E472:')
   silent! let d = chdir("dir_abcd")
   call assert_equal("", d)
+  " Should not crash
+  call chdir(d)
 
   only | tabonly
   call chdir(topdir)
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    189,
+/**/
     188,
 /**/
     187,