lib/util: do an early return on error directory_create_or_exist()
authorStefan Metzmacher <metze@samba.org>
Wed, 14 Mar 2012 09:43:54 +0000 (10:43 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 14 Mar 2012 11:00:46 +0000 (12:00 +0100)
metze

lib/util/util.c

index 1a5c9a196bb9fa3a2f29a84cc64f575e1da9638e..54237c57d817c84359896f4779c4fe09cdecc2ab 100644 (file)
@@ -150,22 +150,22 @@ _PUBLIC_ bool directory_create_or_exist(const char *dname, uid_t uid,
       
        old_umask = umask(0);
        if (lstat(dname, &st) == -1) {
-               if (errno == ENOENT) {
-                       /* Create directory */
-                       if (mkdir(dname, dir_perms) == -1) {
-                               DEBUG(0, ("mkdir failed on directory "
-                                         "%s: %s\n", dname, 
-                                         strerror(errno)));
-                               umask(old_umask);
-                               return false;
-                       }
-               } else {
+               if (errno != ENOENT) {
                        DEBUG(0, ("lstat failed on directory %s: %s\n",
                                  dname, strerror(errno)));
                        umask(old_umask);
                        return false;
                }
 
+               /* Create directory */
+               if (mkdir(dname, dir_perms) == -1) {
+                       DEBUG(0, ("mkdir failed on directory "
+                                 "%s: %s\n", dname,
+                                 strerror(errno)));
+                       umask(old_umask);
+                       return false;
+               }
+
                return true;
        }