summaryrefslogtreecommitdiff
path: root/security/lsm_syscalls.c
diff options
context:
space:
mode:
authorCasey Schaufler <casey@schaufler-ca.com>2023-09-12 13:56:52 -0700
committerPaul Moore <paul@paul-moore.com>2023-11-12 22:54:42 -0500
commite1ca7129db2c3b3c4d261702905a752e6b2710b4 (patch)
tree34bad43a2ebc45477a111b9e7cb27aa76b4e70d7 /security/lsm_syscalls.c
parent5f42375904b08890f2e8e7cd955c5bf0c2c0d05a (diff)
LSM: Helpers for attribute names and filling lsm_ctx
Add lsm_name_to_attr(), which translates a text string to a LSM_ATTR value if one is available. Add lsm_fill_user_ctx(), which fills a struct lsm_ctx, including the trailing attribute value. Both are used in module specific components of LSM system calls. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> Reviewed-by: John Johansen <john.johansen@canonical.com> Reviewed-by: Serge Hallyn <serge@hallyn.com> Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'security/lsm_syscalls.c')
-rw-r--r--security/lsm_syscalls.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/security/lsm_syscalls.c b/security/lsm_syscalls.c
index 329aaca5efc0..5d391b1f7e69 100644
--- a/security/lsm_syscalls.c
+++ b/security/lsm_syscalls.c
@@ -18,6 +18,30 @@
#include <uapi/linux/lsm.h>
/**
+ * lsm_name_to_attr - map an LSM attribute name to its ID
+ * @name: name of the attribute
+ *
+ * Returns the LSM attribute value associated with @name, or 0 if
+ * there is no mapping.
+ */
+u64 lsm_name_to_attr(const char *name)
+{
+ if (!strcmp(name, "current"))
+ return LSM_ATTR_CURRENT;
+ if (!strcmp(name, "exec"))
+ return LSM_ATTR_EXEC;
+ if (!strcmp(name, "fscreate"))
+ return LSM_ATTR_FSCREATE;
+ if (!strcmp(name, "keycreate"))
+ return LSM_ATTR_KEYCREATE;
+ if (!strcmp(name, "prev"))
+ return LSM_ATTR_PREV;
+ if (!strcmp(name, "sockcreate"))
+ return LSM_ATTR_SOCKCREATE;
+ return LSM_ATTR_UNDEF;
+}
+
+/**
* sys_lsm_set_self_attr - Set current task's security module attribute
* @attr: which attribute to set
* @ctx: the LSM contexts