1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-21 15:45:07 +00:00

Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp.

/bin/cp will now copy the permission bits from source to destination. :^)
This commit is contained in:
Andreas Kling 2019-03-01 10:39:19 +01:00
parent b5e5f26a82
commit 1b16a29044
10 changed files with 54 additions and 14 deletions

View file

@ -2177,6 +2177,14 @@ int Process::sys$chmod(const char* pathname, mode_t mode)
return VFS::the().chmod(String(pathname), mode, cwd_inode());
}
int Process::sys$fchmod(int fd, mode_t mode)
{
auto* descriptor = file_descriptor(fd);
if (!descriptor)
return -EBADF;
return descriptor->fchmod(mode);
}
int Process::sys$chown(const char* pathname, uid_t uid, gid_t gid)
{
if (!validate_read_str(pathname))