mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-10 07:10:06 +00:00
Add fcntl sealing interfaces from Linux 3.17 to bits/fcntl-linux.h.
While reviewing Linux 4.13 for glibc header changes needed, I noticed that bits/fcntl-linux.h was missing F_ADD_SEALS etc. from Linux 3.17. I didn't find any discussion indicating this omission is deliberate. Now, these interfaces can only be used with file descriptors created with memfd_create, and we don't have a memfd_create wrapper in glibc (a patch was submitted in October 2014, albeit without documentation / tests, and discussions continued over the next few months, but without consensus on whether to add the interface - and we still lack any general consensus on syscall wrappers), but I don't think that's a reason to exclude the constants from bits/fcntl-linux.h (especially as the header does not look compatible with simultaneously including linux/fcntl.h). (Some of those 2014/2015 discussions raised concerns about difficulty using the memfd_create / sealing interface, but those seem to me more like a question of whether it should be part of the OS-independent GNU API - in my view, even fairly specialized syscalls ought to have wrappers added to glibc if not obsolescent, but there may be cases where we only want to include them in the Linux-specific API and anything in the OS-independent GNU API should be different - rather than being relevant to whether constants for use with fcntl should appear in headers.) * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU] (F_ADD_SEALS): New macro. [__USE_GNU] (F_GET_SEALS): Likewise. [__USE_GNU] (F_SEAL_SEAL): Likewise. [__USE_GNU] (F_SEAL_SHRINK): Likewise. [__USE_GNU] (F_SEAL_GROW): Likewise. [__USE_GNU] (F_SEAL_WRITE): Likewise.
This commit is contained in:
parent
07b4f49db2
commit
27342d1783
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2017-09-08 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
|
||||
(F_ADD_SEALS): New macro.
|
||||
[__USE_GNU] (F_GET_SEALS): Likewise.
|
||||
[__USE_GNU] (F_SEAL_SEAL): Likewise.
|
||||
[__USE_GNU] (F_SEAL_SHRINK): Likewise.
|
||||
[__USE_GNU] (F_SEAL_GROW): Likewise.
|
||||
[__USE_GNU] (F_SEAL_WRITE): Likewise.
|
||||
|
||||
2017-09-08 Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
||||
|
||||
* posix/glob_internal.h (GLOBPAT_NONE, GLOBPAT_SPECIAL)
|
||||
|
@ -202,6 +202,8 @@
|
||||
# define F_NOTIFY 1026 /* Request notifications on a directory. */
|
||||
# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
|
||||
# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */
|
||||
# define F_ADD_SEALS 1033 /* Add seals to file. */
|
||||
# define F_GET_SEALS 1034 /* Get seals for file. */
|
||||
#endif
|
||||
#ifdef __USE_XOPEN2K8
|
||||
# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
|
||||
@ -271,6 +273,14 @@ struct f_owner_ex
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef __USE_GNU
|
||||
/* Types of seals. */
|
||||
# define F_SEAL_SEAL 0x0001 /* Prevent further seals from being set. */
|
||||
# define F_SEAL_SHRINK 0x0002 /* Prevent file from shrinking. */
|
||||
# define F_SEAL_GROW 0x0004 /* Prevent file from growing. */
|
||||
# define F_SEAL_WRITE 0x0008 /* Prevent writes. */
|
||||
#endif
|
||||
|
||||
/* Define some more compatibility macros to be backward compatible with
|
||||
BSD systems which did not managed to hide these kernel macros. */
|
||||
#ifdef __USE_MISC
|
||||
|
Loading…
Reference in New Issue
Block a user