Page MenuHomeFreeBSD

D46443.1790331892.diff
No OneTemporary

Size
585 B
Referenced Files
None
Subscribers
None

D46443.1790331892.diff

diff --git a/usr.sbin/pw/cpdir.c b/usr.sbin/pw/cpdir.c
--- a/usr.sbin/pw/cpdir.c
+++ b/usr.sbin/pw/cpdir.c
@@ -49,9 +49,19 @@
if (*dir == '/')
dir++;
- if (mkdirat(rootfd, dir, mode) != 0 && errno != EEXIST) {
- warn("mkdir(%s)", dir);
- return;
+ if (mkdirat(rootfd, dir, mode) != 0) {
+ mode_t pumask;
+
+ if (errno != EEXIST) {
+ warn("mkdir(%s)", dir);
+ return;
+ }
+
+ pumask = umask(0);
+ umask(pumask);
+
+ (void)fchmodat(rootfd, dir, mode & ~pumask,
+ AT_SYMLINK_NOFOLLOW);
}
fchownat(rootfd, dir, uid, gid, AT_SYMLINK_NOFOLLOW);
if (flags > 0)

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 25, 10:24 AM (1 h, 2 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29917896
Default Alt Text
D46443.1790331892.diff (585 B)

Event Timeline