summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-01-31 22:41:38 +0100
committerBram Moolenaar <Bram@vim.org>2020-01-31 22:41:38 +0100
commit7cc96923c44bbcc541cbd211b6308d87a965f0c3 (patch)
tree19061800642c9fdffb808ee1b08a8d3b9cd0f7bd
parent7f829cab356d63b8e59559285593777a66bcc02b (diff)
downloadvim-git-7cc96923c44bbcc541cbd211b6308d87a965f0c3.tar.gz
patch 8.2.0189: cd() with NULL argument crashesv8.2.0189
Problem: cd() with NULL argument crashes. Solution: Check for NULL. (Ken Takata, closes #5558)
-rw-r--r--src/ex_docmd.c2
-rw-r--r--src/testdir/test_cd.vim2
-rw-r--r--src/version.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 6df6975ea..80cc9307c 100644
--- 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)
diff --git a/src/testdir/test_cd.vim b/src/testdir/test_cd.vim
index 05d3877c7..e44b25f0f 100644
--- 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)
diff --git a/src/version.c b/src/version.c
index 9a3d42f0b..5f090c332 100644
--- 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,