Skip to content

Commit

Permalink
updated for version 7.4.010
Browse files Browse the repository at this point in the history
Problem:    Crash with invalid argument to mkdir().
Solution:   Check for empty string. (lcd47)
  • Loading branch information
brammool committed Aug 30, 2013
1 parent cf81aef commit 195ef0c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
25 changes: 15 additions & 10 deletions src/eval.c
Original file line number Diff line number Diff line change
Expand Up @@ -14292,18 +14292,23 @@ f_mkdir(argvars, rettv)
return;

dir = get_tv_string_buf(&argvars[0], buf);
if (*gettail(dir) == NUL)
/* remove trailing slashes */
*gettail_sep(dir) = NUL;

if (argvars[1].v_type != VAR_UNKNOWN)
if (*dir == NUL)
rettv->vval.v_number = FAIL;
else
{
if (argvars[2].v_type != VAR_UNKNOWN)
prot = get_tv_number_chk(&argvars[2], NULL);
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
if (*gettail(dir) == NUL)
/* remove trailing slashes */
*gettail_sep(dir) = NUL;

if (argvars[1].v_type != VAR_UNKNOWN)
{
if (argvars[2].v_type != VAR_UNKNOWN)
prot = get_tv_number_chk(&argvars[2], NULL);
if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
mkdir_recurse(dir, prot);
}
rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
}
rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
}
#endif

Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -727,6 +727,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
10,
/**/
9,
/**/
Expand Down

0 comments on commit 195ef0c

Please sign in to comment.