All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Moore <paul@paul-moore.com>
To: linux-security-module@vger.kernel.org
Subject: [PATCH 18/22] lsm: move the bpf hook comments to security/security.c
Date: Thu, 16 Feb 2023 22:26:21 -0500	[thread overview]
Message-ID: <20230217032625.678457-19-paul@paul-moore.com> (raw)
In-Reply-To: <20230217032625.678457-1-paul@paul-moore.com>

This patch relocates the LSM hook function comments to the function
definitions, in keeping with the current kernel conventions.  This
should make the hook descriptions more easily discoverable and easier
to maintain.

While formatting changes have been done to better fit the kernel-doc
style, content changes have been kept to a minimum and limited to
text which was obviously incorrect and/or outdated.  It is expected
the future patches will improve the quality of the function header
comments.

Signed-off-by: Paul Moore <paul@paul-moore.com>
---
 include/linux/lsm_hooks.h | 36 ----------------------
 security/security.c       | 65 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 36 deletions(-)

diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
index e36387f88083..601d1ecdae0f 100644
--- a/include/linux/lsm_hooks.h
+++ b/include/linux/lsm_hooks.h
@@ -190,42 +190,6 @@
  *	@key: The key to watch.
  *	Return 0 if permission is granted.
  *
- * Security hooks for using the eBPF maps and programs functionalities through
- * eBPF syscalls.
- *
- * @bpf:
- *	Do a initial check for all bpf syscalls after the attribute is copied
- *	into the kernel. The actual security module can implement their own
- *	rules to check the specific cmd they need.
- *	Return 0 if permission is granted.
- *
- * @bpf_map:
- *	Do a check when the kernel generate and return a file descriptor for
- *	eBPF maps.
- *	@map: bpf map that we want to access.
- *	@mask: the access flags.
- *	Return 0 if permission is granted.
- *
- * @bpf_prog:
- *	Do a check when the kernel generate and return a file descriptor for
- *	eBPF programs.
- *	@prog: bpf prog that userspace want to use.
- *	Return 0 if permission is granted.
- *
- * @bpf_map_alloc_security:
- *	Initialize the security field inside bpf map.
- *	Return 0 on success, error on failure.
- *
- * @bpf_map_free_security:
- *	Clean up the security information stored inside bpf map.
- *
- * @bpf_prog_alloc_security:
- *	Initialize the security field inside bpf program.
- *	Return 0 on success, error on failure.
- *
- * @bpf_prog_free_security:
- *	Clean up the security information stored inside bpf prog.
- *
  * @locked_down:
  *	Determine whether a kernel feature that potentially enables arbitrary
  *	code execution in kernel space should be permitted.
diff --git a/security/security.c b/security/security.c
index 4a2eff06f418..8eb0cef761dd 100644
--- a/security/security.c
+++ b/security/security.c
@@ -4824,30 +4824,95 @@ int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule)
 #endif /* CONFIG_AUDIT */
 
 #ifdef CONFIG_BPF_SYSCALL
+/**
+ * security_bpf() - Check if the bpf syscall operation is allowed
+ * @cmd: command
+ * @attr: bpf attribute
+ * @size: size
+ *
+ * Do a initial check for all bpf syscalls after the attribute is copied into
+ * the kernel. The actual security module can implement their own rules to
+ * check the specific cmd they need.
+ *
+ * Return: Returns 0 if permission is granted.
+ */
 int security_bpf(int cmd, union bpf_attr *attr, unsigned int size)
 {
 	return call_int_hook(bpf, 0, cmd, attr, size);
 }
+
+/**
+ * security_bpf_map() - Check if access to a bpf map is allowed
+ * @map: bpf map
+ * @fmode: mode
+ *
+ * Do a check when the kernel generates and returns a file descriptor for eBPF
+ * maps.
+ *
+ * Return: Returns 0 if permission is granted.
+ */
 int security_bpf_map(struct bpf_map *map, fmode_t fmode)
 {
 	return call_int_hook(bpf_map, 0, map, fmode);
 }
+
+/**
+ * security_bpf_prog() - Check if access to a bpf program is allowed
+ * @prog: bpf program
+ *
+ * Do a check when the kernel generates and returns a file descriptor for eBPF
+ * programs.
+ *
+ * Return: Returns 0 if permission is granted.
+ */
 int security_bpf_prog(struct bpf_prog *prog)
 {
 	return call_int_hook(bpf_prog, 0, prog);
 }
+
+/**
+ * security_bpf_map_alloc() - Allocate a bpf map LSM blob
+ * @map: bpf map
+ *
+ * Initialize the security field inside bpf map.
+ *
+ * Return: Returns 0 on success, error on failure.
+ */
 int security_bpf_map_alloc(struct bpf_map *map)
 {
 	return call_int_hook(bpf_map_alloc_security, 0, map);
 }
+
+/**
+ * security_bpf_prog_alloc() - Allocate a bpf program LSM blob
+ * @aux: bpf program aux info struct
+ *
+ * Initialize the security field inside bpf program.
+ *
+ * Return: Returns 0 on success, error on failure.
+ */
 int security_bpf_prog_alloc(struct bpf_prog_aux *aux)
 {
 	return call_int_hook(bpf_prog_alloc_security, 0, aux);
 }
+
+/**
+ * security_bpf_map_free() - Free a bpf map's LSM blob
+ * @map: bpf map
+ *
+ * Clean up the security information stored inside bpf map.
+ */
 void security_bpf_map_free(struct bpf_map *map)
 {
 	call_void_hook(bpf_map_free_security, map);
 }
+
+/**
+ * security_bpf_prog_free() - Free a bpf program's LSM blob
+ * @aux: bpf program aux info struct
+ *
+ * Clean up the security information stored inside bpf prog.
+ */
 void security_bpf_prog_free(struct bpf_prog_aux *aux)
 {
 	call_void_hook(bpf_prog_free_security, aux);
-- 
2.39.2


  parent reply	other threads:[~2023-02-17  3:27 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-17  3:26 [PATCH 00/22] Move LSM hook comments into security/security.c Paul Moore
2023-02-17  3:26 ` [PATCH 01/22] lsm: move the program execution hook comments to security/security.c Paul Moore
2023-02-17  3:26 ` [PATCH 02/22] lsm: move the fs_context " Paul Moore
2023-02-17  3:26 ` [PATCH 03/22] lsm: move the filesystem " Paul Moore
2023-02-17  3:26 ` [PATCH 04/22] lsm: move the inode " Paul Moore
2023-02-17  3:26 ` [PATCH 05/22] lsm: move the kernfs " Paul Moore
2023-02-17  3:26 ` [PATCH 06/22] lsm: move the file " Paul Moore
2023-02-17  3:26 ` [PATCH 07/22] lsm: move the task " Paul Moore
2023-02-17  3:26 ` [PATCH 08/22] lsm: move the netlink " Paul Moore
2023-02-17  3:26 ` [PATCH 09/22] lsm: move the AF_UNIX " Paul Moore
2023-02-17  3:26 ` [PATCH 10/22] lsm: move the socket " Paul Moore
2023-02-17  3:26 ` [PATCH 11/22] lsm: move the SCTP " Paul Moore
2023-02-17  3:26 ` [PATCH 12/22] lsm: move the Infiniband " Paul Moore
2023-02-17  3:26 ` [PATCH 13/22] lsm: move the xfrm " Paul Moore
2023-02-17  3:26 ` [PATCH 14/22] lsm: move the key " Paul Moore
2023-02-17  3:26 ` [PATCH 15/22] lsm: move the sysv " Paul Moore
2023-02-17  3:26 ` [PATCH 16/22] lsm: move the binder " Paul Moore
2023-02-17  3:26 ` [PATCH 17/22] lsm: move the audit " Paul Moore
2023-02-17  3:26 ` Paul Moore [this message]
2023-02-17  3:26 ` [PATCH 19/22] lsm: move the perf " Paul Moore
2023-02-17  3:26 ` [PATCH 20/22] lsm: move the io_uring " Paul Moore
2023-02-17  3:26 ` [PATCH 21/22] lsm: move the remaining LSM " Paul Moore
2023-02-17  3:26 ` [PATCH 22/22] lsm: styling fixes " Paul Moore
2023-02-17 14:07 ` [PATCH 00/22] Move LSM hook comments into security/security.c Paul Moore
2023-02-17 17:22 ` Casey Schaufler
2023-02-17 19:04   ` Paul Moore
2023-03-06 18:49 ` Paul Moore
2023-03-07  8:08   ` Roberto Sassu
2023-03-07 16:33     ` Paul Moore
2023-03-07 16:38       ` Roberto Sassu
2023-03-08 17:09         ` Paul Moore
2023-03-08 17:14           ` Roberto Sassu
2023-03-08 17:20             ` Paul Moore

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230217032625.678457-19-paul@paul-moore.com \
    --to=paul@paul-moore.com \
    --cc=linux-security-module@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.