mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
Merge tag 'lsm-pr-20220829' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm
Pull LSM support for IORING_OP_URING_CMD from Paul Moore: "Add SELinux and Smack controls to the io_uring IORING_OP_URING_CMD. These are necessary as without them the IORING_OP_URING_CMD remains outside the purview of the LSMs (Luis' LSM patch, Casey's Smack patch, and my SELinux patch). They have been discussed at length with the io_uring folks, and Jens has given his thumbs-up on the relevant patches (see the commit descriptions). There is one patch that is not strictly necessary, but it makes testing much easier and is very trivial: the /dev/null IORING_OP_URING_CMD patch." * tag 'lsm-pr-20220829' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm: Smack: Provide read control for io_uring_cmd /dev/null: add IORING_OP_URING_CMD support selinux: implement the security_uring_cmd() LSM hook lsm,io_uring: add LSM hooks for the new uring_cmd file op
This commit is contained in:
@@ -407,4 +407,5 @@ LSM_HOOK(int, 0, perf_event_write, struct perf_event *event)
|
||||
#ifdef CONFIG_IO_URING
|
||||
LSM_HOOK(int, 0, uring_override_creds, const struct cred *new)
|
||||
LSM_HOOK(int, 0, uring_sqpoll, void)
|
||||
LSM_HOOK(int, 0, uring_cmd, struct io_uring_cmd *ioucmd)
|
||||
#endif /* CONFIG_IO_URING */
|
||||
|
||||
@@ -1582,6 +1582,9 @@
|
||||
* Check whether the current task is allowed to spawn a io_uring polling
|
||||
* thread (IORING_SETUP_SQPOLL).
|
||||
*
|
||||
* @uring_cmd:
|
||||
* Check whether the file_operations uring_cmd is allowed to run.
|
||||
*
|
||||
*/
|
||||
union security_list_options {
|
||||
#define LSM_HOOK(RET, DEFAULT, NAME, ...) RET (*NAME)(__VA_ARGS__);
|
||||
|
||||
@@ -2060,6 +2060,7 @@ static inline int security_perf_event_write(struct perf_event *event)
|
||||
#ifdef CONFIG_SECURITY
|
||||
extern int security_uring_override_creds(const struct cred *new);
|
||||
extern int security_uring_sqpoll(void);
|
||||
extern int security_uring_cmd(struct io_uring_cmd *ioucmd);
|
||||
#else
|
||||
static inline int security_uring_override_creds(const struct cred *new)
|
||||
{
|
||||
@@ -2069,6 +2070,10 @@ static inline int security_uring_sqpoll(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int security_uring_cmd(struct io_uring_cmd *ioucmd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_SECURITY */
|
||||
#endif /* CONFIG_IO_URING */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user