/* Create directory */
ret = mkdir(dname, dir_perms);
- if (ret == -1) {
+ if (ret == -1 && errno != EEXIST) {
DEBUG(0, ("mkdir failed on directory "
"%s: %s\n", dname,
strerror(errno)));
return false;
}
- return true;
+ ret = lstat(dname, &st);
+ if (ret == -1) {
+ DEBUG(0, ("lstat failed on created directory %s: %s\n",
+ dname, strerror(errno)));
+ umask(old_umask);
+ return false;
+ }
}
/* Check ownership and permission on existing directory */