summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/acl-is-trivial-np.c11
-rw-r--r--config/header.mk1
-rw-r--r--src/fsade.c4
3 files changed, 14 insertions, 2 deletions
diff --git a/config/acl-is-trivial-np.c b/config/acl-is-trivial-np.c
new file mode 100644
index 0000000..4178238
--- /dev/null
+++ b/config/acl-is-trivial-np.c
@@ -0,0 +1,11 @@
+// Copyright © Tavian Barnes <tavianator@tavianator.com>
+// SPDX-License-Identifier: 0BSD
+
+#include <sys/acl.h>
+
+int main(void) {
+ acl_t acl = acl_get_fd(3);
+ int trivial;
+ acl_is_trivial_np(acl, &trivial);
+ return 0;
+}
diff --git a/config/header.mk b/config/header.mk
index b6915d5..20cb7ae 100644
--- a/config/header.mk
+++ b/config/header.mk
@@ -9,6 +9,7 @@ include config/exports.mk
# All header fragments we generate
HEADERS := \
+ ${GEN}/acl-is-trivial-np.h \
${GEN}/confstr.h \
${GEN}/getdents.h \
${GEN}/getdents64.h \
diff --git a/src/fsade.c b/src/fsade.c
index 34a4d57..51b629f 100644
--- a/src/fsade.c
+++ b/src/fsade.c
@@ -199,7 +199,7 @@ static int bfs_check_acl_type(acl_t acl, acl_type_t type) {
return bfs_check_posix1e_acl(acl, false);
}
-#if __FreeBSD__
+#if BFS_HAS_ACL_IS_TRIVIAL_NP
int trivial;
int ret = acl_is_trivial_np(acl, &trivial);
@@ -213,7 +213,7 @@ static int bfs_check_acl_type(acl_t acl, acl_type_t type) {
} else {
return 1;
}
-#else // !__FreeBSD__
+#else
return bfs_check_posix1e_acl(acl, true);
#endif
}