]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.010 v7.4.010
authorBram Moolenaar <Bram@vim.org>
Fri, 30 Aug 2013 14:00:08 +0000 (16:00 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 30 Aug 2013 14:00:08 +0000 (16:00 +0200)
Problem:    Crash with invalid argument to mkdir().
Solution:   Check for empty string. (lcd47)

src/eval.c
src/version.c

index 58317d29bdf58ba0d087b1f271ab93e8bff68990..73844800c4773262cc9545319f74a9499b68b3c1 100644 (file)
@@ -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
 
index 9b5343e9d6a48ef838fcc406ce65a1ff22692c22..61694a4672d2e7c3e27fc8eae17c8134c8802011 100644 (file)
@@ -727,6 +727,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    10,
 /**/
     9,
 /**/