diff options
Diffstat (limited to 'init/builtins.c')
-rw-r--r-- | init/builtins.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/init/builtins.c b/init/builtins.c index da41b89..bb963c1 100644 --- a/init/builtins.c +++ b/init/builtins.c @@ -322,6 +322,14 @@ int do_mkdir(int nargs, char **args) if (_chown(args[1], uid, gid) < 0) { return -errno; } + + /* chown may have cleared S_ISUID and S_ISGID, chmod again */ + if (mode & (S_ISUID | S_ISGID)) { + ret = _chmod(args[1], mode); + if (ret == -1) { + return -errno; + } + } } return 0; |