diff options
-rw-r--r-- | libbb/make_directory.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libbb/make_directory.c b/libbb/make_directory.c index 0a9d7b160..7b7fde911 100644 --- a/libbb/make_directory.c +++ b/libbb/make_directory.c | |||
@@ -49,16 +49,16 @@ int make_directory (char *path, long mode, int flags) | |||
49 | struct stat st; | 49 | struct stat st; |
50 | 50 | ||
51 | if (stat (path, &st) < 0 && errno == ENOENT) { | 51 | if (stat (path, &st) < 0 && errno == ENOENT) { |
52 | int status; | ||
52 | char *parent = dirname (path); | 53 | char *parent = dirname (path); |
53 | mode_t mask = umask (0); | 54 | mode_t mask = umask (0); |
54 | umask (mask); | 55 | umask (mask); |
55 | 56 | ||
56 | if (make_directory (parent, (0777 & ~mask) | 0300, | 57 | status = make_directory (parent, (0777 & ~mask) | 0300, |
57 | FILEUTILS_RECUR) < 0) | 58 | FILEUTILS_RECUR); |
58 | return -1; | ||
59 | free (parent); | 59 | free (parent); |
60 | 60 | ||
61 | if (make_directory (path, mode, 0) < 0) | 61 | if (status < 0 || make_directory (path, mode, 0) < 0) |
62 | return -1; | 62 | return -1; |
63 | } | 63 | } |
64 | } | 64 | } |