Thread (37 messages) 37 messages, 2 authors, 2019-08-09

[PATCH v7 25/28] LSM: Provide an user space interface for the default display

STALE2615d

From: Casey Schaufler <casey@schaufler-ca.com>
Date: 2019-08-07 19:45:03
Also in: selinux
Subsystem: security subsystem, the rest · Maintainers: Paul Moore, James Morris, "Serge E. Hallyn", Linus Torvalds

Revision v7 of 31 in this series.

Revisions (31)
  1. v1 [diff vs current]
  2. v1 [diff vs current]
  3. v1 [diff vs current]
  4. v1 [diff vs current]
  5. v1 [diff vs current]
  6. v2 [diff vs current]
  7. v5 [diff vs current]
  8. v7 current
  9. v8 [diff vs current]
  10. v10 [diff vs current]
  11. v11 [diff vs current]
  12. v11 [diff vs current]
  13. v12 [diff vs current]
  14. v12 [diff vs current]
  15. v13 [diff vs current]
  16. v24 [diff vs current]
  17. v25 [diff vs current]
  18. v26 [diff vs current]
  19. v27 [diff vs current]
  20. v28 [diff vs current]
  21. v29 [diff vs current]
  22. v30 [diff vs current]
  23. v31 [diff vs current]
  24. v32 [diff vs current]
  25. v33 [diff vs current]
  26. v34 [diff vs current]
  27. v34 [diff vs current]
  28. v35 [diff vs current]
  29. v36 [diff vs current]
  30. v37 [diff vs current]
  31. v38 [diff vs current]
Create /sys/kernel/security/lsm_display_default which contains
the name of the security module used when no display value
has been set.

Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
---
 security/inode.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/security/inode.c b/security/inode.c
index b7772a9b315e..538a4d6796da 100644
--- a/security/inode.c
+++ b/security/inode.c
@@ -321,6 +321,22 @@ static const struct file_operations lsm_ops = {
 	.read = lsm_read,
 	.llseek = generic_file_llseek,
 };
+
+static struct dentry *lsm_display_default_dentry;
+static ssize_t lsm_display_default_read(struct file *filp, char __user *buf,
+					size_t count, loff_t *ppos)
+{
+	const char *name = security_lsm_slot_name(0);
+
+	if (name == NULL)
+		return 0;
+	return simple_read_from_buffer(buf, count, ppos, name, strlen(name));
+}
+
+static const struct file_operations lsm_display_default_ops = {
+	.read = lsm_display_default_read,
+	.llseek = generic_file_llseek,
+};
 #endif
 
 static int __init securityfs_init(void)
@@ -337,8 +353,10 @@ static int __init securityfs_init(void)
 		return retval;
 	}
 #ifdef CONFIG_SECURITY
-	lsm_dentry = securityfs_create_file("lsm", 0444, NULL, NULL,
-						&lsm_ops);
+	lsm_dentry = securityfs_create_file("lsm", 0444, NULL, NULL, &lsm_ops);
+	lsm_display_default_dentry = securityfs_create_file(
+					"lsm_display_default", 0444, NULL,
+					NULL, &lsm_display_default_ops);
 #endif
 	return 0;
 }
-- 
2.20.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help