aboutsummaryrefslogtreecommitdiffstats
path: root/ports/unix/guts/mkdirat.c
diff options
context:
space:
mode:
Diffstat (limited to 'ports/unix/guts/mkdirat.c')
-rw-r--r--ports/unix/guts/mkdirat.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ports/unix/guts/mkdirat.c b/ports/unix/guts/mkdirat.c
index e846b70..e0b6af9 100644
--- a/ports/unix/guts/mkdirat.c
+++ b/ports/unix/guts/mkdirat.c
@@ -6,11 +6,14 @@
* wrap_mkdirat(int dirfd, const char *path, mode_t mode) {
* int rc = -1;
*/
+ /* mask out mode bits appropriately */
+ mode = mode & ~pseudo_umask;
#ifdef PSEUDO_NO_REAL_AT_FUNCTIONS
if (dirfd != AT_FDCWD) {
errno = ENOSYS;
return -1;
}
+
rc = real_mkdir(path, PSEUDO_FS_MODE(mode, 1));
#else
rc = real_mkdirat(dirfd, path, PSEUDO_FS_MODE(mode, 1));