mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-21 18:03:41 +03:00
smack make mac_smack_fix_at() useful when called with dir_fd=AT_FDCWD
This commit is contained in:
parent
1e146d7382
commit
d1cd465e21
@ -176,7 +176,7 @@ static int smack_fix_fd(int fd, const char *abspath, LabelFixFlags flags) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mac_smack_fix_at(int dirfd, const char *path, LabelFixFlags flags) {
|
int mac_smack_fix_at(int dir_fd, const char *path, LabelFixFlags flags) {
|
||||||
_cleanup_free_ char *p = NULL;
|
_cleanup_free_ char *p = NULL;
|
||||||
_cleanup_close_ int fd = -1;
|
_cleanup_close_ int fd = -1;
|
||||||
int r;
|
int r;
|
||||||
@ -186,7 +186,14 @@ int mac_smack_fix_at(int dirfd, const char *path, LabelFixFlags flags) {
|
|||||||
if (!mac_smack_use())
|
if (!mac_smack_use())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fd = openat(dirfd, path, O_NOFOLLOW|O_CLOEXEC|O_PATH);
|
if (dir_fd < 0) {
|
||||||
|
if (dir_fd != AT_FDCWD)
|
||||||
|
return -EBADF;
|
||||||
|
|
||||||
|
return mac_smack_fix(path, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
fd = openat(dir_fd, path, O_NOFOLLOW|O_CLOEXEC|O_PATH);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
if ((flags & LABEL_IGNORE_ENOENT) && errno == ENOENT)
|
if ((flags & LABEL_IGNORE_ENOENT) && errno == ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user