mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
linux: Use fchmodat2 on fchmod for flags different than 0 (BZ 26401)
Linux 6.6 (09da082b07bbae1c) added support for fchmodat2, which has similar semantics as fchmodat with an extra flag argument. This allows fchmodat to implement AT_SYMLINK_NOFOLLOW and AT_EMPTY_PATH without the need for procfs. The syscall is registered on all architectures (with value of 452 except on alpha which is 562, commit 78252deb023cf087). The tst-lchmod.c requires a small fix where fchmodat checks two contradictory assertions ('(st.st_mode & 0777) == 2' and '(st.st_mode & 0777) == 3'). Checked on x86_64-linux-gnu on a 6.6 kernel. Reviewed-by: Florian Weimer <fweimer@redhat.com>
This commit is contained in:
@@ -252,4 +252,12 @@
|
||||
# define __ASSUME_CLONE3 0
|
||||
#endif
|
||||
|
||||
/* The fchmodat2 system call was introduced across all architectures
|
||||
in Linux 6.6. */
|
||||
#if __LINUX_KERNEL_VERSION >= 0x060600
|
||||
# define __ASSUME_FCHMODAT2 1
|
||||
#else
|
||||
# define __ASSUME_FCHMODAT2 0
|
||||
#endif
|
||||
|
||||
#endif /* kernel-features.h */
|
||||
|
Reference in New Issue
Block a user