summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremie Koenig <jk@jk.fr.eu.org>2010-05-27 13:46:33 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2010-07-18 22:46:28 (GMT)
commit84b01d5afc8230c79a1b8469c222d940c0d4e792 (patch)
tree0f1a7638e2138b60bdc6a48fc66ac66d415bdf32
parent816ed971e4ce60564f7ecbdc016d268d8e936230 (diff)
downloadbusybox-84b01d5afc8230c79a1b8469c222d940c0d4e792.tar.gz
busybox-84b01d5afc8230c79a1b8469c222d940c0d4e792.tar.bz2
mkdir: fix -p on FreeBSD
This patch is libbb.make_directory.diff from Debian kFreeBSD at: http://svn.debian.org/viewsvn/d-i/people/slackydeb/kfreebsd/busybox/1.14/debian Signed-off-by: Jeremie Koenig <jk@jk.fr.eu.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/make_directory.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libbb/make_directory.c b/libbb/make_directory.c
index 4486eb1..6dd04cf 100644
--- a/libbb/make_directory.c
+++ b/libbb/make_directory.c
@@ -86,7 +86,7 @@ int FAST_FUNC 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))
) {