[PATCH v3] libsepol: Support functionfs_seclabel policycap
From: Neill Kapron
Date: Thu Aug 28 2025 - 13:05:32 EST
This adds the necessary userspace pieces to support the
functionfs_seclabel policycap which enables per-file labels in
functionfs and the ability for userspace to apply the labels.
With the policycap disabled, legacy behaviors are maintained and
per-file labeling is disallowed.
Signed-off-by: Neill Kapron <nkapron@xxxxxxxxxx>
Changes since v2:
- Sending as separate patches
---
libsepol/include/sepol/policydb/polcaps.h | 1 +
libsepol/src/polcaps.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/libsepol/include/sepol/policydb/polcaps.h b/libsepol/include/sepol/policydb/polcaps.h
index 0835ea21..bbaebf1a 100644
--- a/libsepol/include/sepol/policydb/polcaps.h
+++ b/libsepol/include/sepol/policydb/polcaps.h
@@ -19,6 +19,7 @@ enum {
POLICYDB_CAP_NETLINK_XPERM,
POLICYDB_CAP_NETIF_WILDCARD,
POLICYDB_CAP_GENFS_SECLABEL_WILDCARD,
+ POLICYDB_CAP_FUNCTIONFS_SECLABEL,
__POLICYDB_CAP_MAX
};
#define POLICYDB_CAP_MAX (__POLICYDB_CAP_MAX - 1)
diff --git a/libsepol/src/polcaps.c b/libsepol/src/polcaps.c
index 7ac0ae7c..83eb6143 100644
--- a/libsepol/src/polcaps.c
+++ b/libsepol/src/polcaps.c
@@ -18,6 +18,7 @@ static const char * const polcap_names[POLICYDB_CAP_MAX + 1] = {
[POLICYDB_CAP_NETLINK_XPERM] = "netlink_xperm",
[POLICYDB_CAP_NETIF_WILDCARD] = "netif_wildcard",
[POLICYDB_CAP_GENFS_SECLABEL_WILDCARD] = "genfs_seclabel_wildcard",
+ [POLICYDB_CAP_FUNCTIONFS_SECLABEL] = "functionfs_seclabel",
};
int sepol_polcap_getnum(const char *name)
--
2.51.0.318.gd7df087d1a-goog