aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorAdhemerval Zanella Netto <adhemerval.zanella@linaro.org>2022-10-19 19:14:11 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-12-07 11:27:01 -0300
commit25ca6175bacb40b9704458e53ddee58865d8ab2b (patch)
treed48caceb2aaf5a65bc635063520e7996852caae2 /sysdeps
parent842128f160a48e5545900ea3bc3ba2ce40539d11 (diff)
downloadglibc-25ca6175bacb40b9704458e53ddee58865d8ab2b.zip
glibc-25ca6175bacb40b9704458e53ddee58865d8ab2b.tar.gz
glibc-25ca6175bacb40b9704458e53ddee58865d8ab2b.tar.bz2
Linux: consolidate lchown implementation
Use lchown syscall if defined, otherwise use fchownat. Checked on x86_64-linux-gnu. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/lchown.c (renamed from sysdeps/unix/sysv/linux/generic/lchown.c)11
1 files changed, 8 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/generic/lchown.c b/sysdeps/unix/sysv/linux/lchown.c
index 996925d..4888e5f 100644
--- a/sysdeps/unix/sysv/linux/generic/lchown.c
+++ b/sysdeps/unix/sysv/linux/lchown.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 2011-2022 Free Software Foundation, Inc.
+/* Change ownership of a file. Linux version.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,7 +24,11 @@
int
__lchown (const char *file, uid_t owner, gid_t group)
{
- return INLINE_SYSCALL (fchownat, 5, AT_FDCWD, file, owner, group,
- AT_SYMLINK_NOFOLLOW);
+#ifdef __NR_lchown
+ return INLINE_SYSCALL_CALL (lchown, file, owner, group);
+#else
+ return INLINE_SYSCALL_CALL (fchownat, AT_FDCWD, file, owner, group,
+ AT_SYMLINK_NOFOLLOW);
+#endif
}
weak_alias (__lchown, lchown)