fix printf warning
[oweals/busybox.git] / libbb / make_directory.c
index d07ccb93c0f524cac8d5373d4b21bcd06557c4f3..d96acf0d9c045cbe912486bb12a6f0346a988a3d 100644 (file)
@@ -49,7 +49,14 @@ int bb_make_directory (char *path, long mode, int flags)
        struct stat st;
 
        mask = umask(0);
-       umask(mask & ~0300);
+       if (mode == -1) {
+               umask(mask);
+               mode = (S_IXUSR | S_IXGRP | S_IXOTH |
+                               S_IWUSR | S_IWGRP | S_IWOTH |
+                               S_IRUSR | S_IRGRP | S_IROTH) & ~mask;
+       } else {
+               umask(mask & ~0300);
+       }
 
        do {
                c = 0;