diff --git a/src/system/libroot/posix/sys/mkdir.c b/src/system/libroot/posix/sys/mkdir.c index ccfc4cba3b..25b53fcae6 100644 --- a/src/system/libroot/posix/sys/mkdir.c +++ b/src/system/libroot/posix/sys/mkdir.c @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Copyright 2002-2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -9,6 +9,10 @@ #include +extern mode_t __gUmask; + // declared in sys/umask.c + + #define RETURN_AND_SET_ERRNO(err) \ if (err < 0) { \ errno = err; \ @@ -20,7 +24,7 @@ int mkdir(const char* path, mode_t mode) { - status_t status = _kern_create_dir(-1, path, mode); + status_t status = _kern_create_dir(-1, path, mode & ~__gUmask); RETURN_AND_SET_ERRNO(status); }