1
1
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:
Lennart Poettering 2021-11-12 15:12:23 +01:00
parent 1e146d7382
commit d1cd465e21

View File

@ -176,7 +176,7 @@ static int smack_fix_fd(int fd, const char *abspath, LabelFixFlags flags) {
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_close_ int fd = -1;
int r;
@ -186,7 +186,14 @@ int mac_smack_fix_at(int dirfd, const char *path, LabelFixFlags flags) {
if (!mac_smack_use())
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 ((flags & LABEL_IGNORE_ENOENT) && errno == ENOENT)
return 0;