diff options
author | Nick Kralevich <nnk@google.com> | 2015-05-31 13:43:13 -0700 |
---|---|---|
committer | Nick Kralevich <nnk@google.com> | 2015-06-02 10:08:05 -0700 |
commit | c92f9f8069f567ad2c2557e2ef56e13de4bf8713 (patch) | |
tree | ca362b872bf6f794bc376ba0f39eab65dee85a28 /libc/arch-mips64 | |
parent | c4ebe60e1a2fc165ff11442765325628e27f2a05 (diff) | |
download | bionic-c92f9f8069f567ad2c2557e2ef56e13de4bf8713.zip bionic-c92f9f8069f567ad2c2557e2ef56e13de4bf8713.tar.gz bionic-c92f9f8069f567ad2c2557e2ef56e13de4bf8713.tar.bz2 |
libc: Add O_PATH support for fgetxattr / fsetxattr
Support O_PATH file descriptors when handling fgetxattr and fsetxattr.
This avoids requiring file read access to pull extended attributes.
This is needed to support O_PATH file descriptors when calling
SELinux's fgetfilecon() call. In particular, this allows the querying
and setting of SELinux file context by using something like the following
code:
int dirfd = open("/path/to/dir", O_DIRECTORY);
int fd = openat(dirfd, "file", O_PATH | O_NOFOLLOW);
char *context;
fgetfilecon(fd, &context);
This change was motivated by a comment in
https://android-review.googlesource.com/#/c/152680/1/toys/posix/ls.c
(cherrypicked from commit 2825f10b7f61558c264231a536cf3affc0d84204)
Change-Id: Ic0cdf9f9dd0e35a63b44a4c4a08400020041eddf
Diffstat (limited to 'libc/arch-mips64')
-rw-r--r-- | libc/arch-mips64/syscalls/___fgetxattr.S (renamed from libc/arch-mips64/syscalls/fgetxattr.S) | 5 | ||||
-rw-r--r-- | libc/arch-mips64/syscalls/___fsetxattr.S (renamed from libc/arch-mips64/syscalls/fsetxattr.S) | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/libc/arch-mips64/syscalls/fgetxattr.S b/libc/arch-mips64/syscalls/___fgetxattr.S index 44c248a..935b080 100644 --- a/libc/arch-mips64/syscalls/fgetxattr.S +++ b/libc/arch-mips64/syscalls/___fgetxattr.S @@ -2,7 +2,7 @@ #include <private/bionic_asm.h> -ENTRY(fgetxattr) +ENTRY(___fgetxattr) .set push .set noreorder li v0, __NR_fgetxattr @@ -22,4 +22,5 @@ ENTRY(fgetxattr) j t9 move ra, t0 .set pop -END(fgetxattr) +END(___fgetxattr) +.hidden ___fgetxattr diff --git a/libc/arch-mips64/syscalls/fsetxattr.S b/libc/arch-mips64/syscalls/___fsetxattr.S index 0ad1f90..c02f406 100644 --- a/libc/arch-mips64/syscalls/fsetxattr.S +++ b/libc/arch-mips64/syscalls/___fsetxattr.S @@ -2,7 +2,7 @@ #include <private/bionic_asm.h> -ENTRY(fsetxattr) +ENTRY(___fsetxattr) .set push .set noreorder li v0, __NR_fsetxattr @@ -22,4 +22,5 @@ ENTRY(fsetxattr) j t9 move ra, t0 .set pop -END(fsetxattr) +END(___fsetxattr) +.hidden ___fsetxattr |