diff options
-rw-r--r-- | target/makedevs/makedevs.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/target/makedevs/makedevs.c b/target/makedevs/makedevs.c index 8f4b192d1..8fa3048c4 100644 --- a/target/makedevs/makedevs.c +++ b/target/makedevs/makedevs.c @@ -31,8 +31,9 @@ #include <stdarg.h> #include <sys/stat.h> #include <sys/types.h> +#ifndef __APPLE__ #include <sys/sysmacros.h> /* major() and minor() */ - +#endif const char *bb_applet_name; @@ -146,7 +147,7 @@ int bb_make_directory (char *path, long mode, int flags) if (mkdir(path, 0777) < 0) { /* If we failed for any other reason than the directory * already exists, output a diagnostic and return -1.*/ - if (errno != EEXIST + if ((errno != EEXIST && errno != EISDIR) || !(flags & FILEUTILS_RECUR) || (stat(path, &st) < 0 || !S_ISDIR(st.st_mode))) { fail_msg = "create"; |