[PATCH] change lspp ipc auditing
Hi, The patch below converts IPC auditing to collect sid's and convert to context string only if it needs to output an audit record. This patch depends on the inode audit change patch already being applied. Signed-off-by: Steve Grubb <sgrubb@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -563,11 +563,6 @@ static int dummy_ipc_permission (struct kern_ipc_perm *ipcp, short flag)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dummy_ipc_getsecurity(struct kern_ipc_perm *ipcp, void *buffer, size_t size)
|
||||
{
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
static int dummy_msg_msg_alloc_security (struct msg_msg *msg)
|
||||
{
|
||||
return 0;
|
||||
@@ -976,7 +971,6 @@ void security_fixup_ops (struct security_operations *ops)
|
||||
set_to_dummy_if_null(ops, task_reparent_to_init);
|
||||
set_to_dummy_if_null(ops, task_to_inode);
|
||||
set_to_dummy_if_null(ops, ipc_permission);
|
||||
set_to_dummy_if_null(ops, ipc_getsecurity);
|
||||
set_to_dummy_if_null(ops, msg_msg_alloc_security);
|
||||
set_to_dummy_if_null(ops, msg_msg_free_security);
|
||||
set_to_dummy_if_null(ops, msg_queue_alloc_security);
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/selinux.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/ipc.h>
|
||||
|
||||
#include "security.h"
|
||||
#include "objsec.h"
|
||||
@@ -50,3 +51,13 @@ void selinux_get_inode_sid(const struct inode *inode, u32 *sid)
|
||||
*sid = 0;
|
||||
}
|
||||
|
||||
void selinux_get_ipc_sid(const struct kern_ipc_perm *ipcp, u32 *sid)
|
||||
{
|
||||
if (selinux_enabled) {
|
||||
struct ipc_security_struct *isec = ipcp->security;
|
||||
*sid = isec->sid;
|
||||
return;
|
||||
}
|
||||
*sid = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -4052,13 +4052,6 @@ static int selinux_ipc_permission(struct kern_ipc_perm *ipcp, short flag)
|
||||
return ipc_has_perm(ipcp, av);
|
||||
}
|
||||
|
||||
static int selinux_ipc_getsecurity(struct kern_ipc_perm *ipcp, void *buffer, size_t size)
|
||||
{
|
||||
struct ipc_security_struct *isec = ipcp->security;
|
||||
|
||||
return selinux_getsecurity(isec->sid, buffer, size);
|
||||
}
|
||||
|
||||
/* module stacking operations */
|
||||
static int selinux_register_security (const char *name, struct security_operations *ops)
|
||||
{
|
||||
@@ -4321,7 +4314,6 @@ static struct security_operations selinux_ops = {
|
||||
.task_to_inode = selinux_task_to_inode,
|
||||
|
||||
.ipc_permission = selinux_ipc_permission,
|
||||
.ipc_getsecurity = selinux_ipc_getsecurity,
|
||||
|
||||
.msg_msg_alloc_security = selinux_msg_msg_alloc_security,
|
||||
.msg_msg_free_security = selinux_msg_msg_free_security,
|
||||
|
||||
Reference in New Issue
Block a user