mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
lsm: use lsm_prop in security_audit_rule_match
Change the secid parameter of security_audit_rule_match to a lsm_prop structure pointer. Pass the entry from the lsm_prop structure for the approprite slot to the LSM hook. Change the users of security_audit_rule_match to use the lsm_prop instead of a u32. The scaffolding function lsmprop_init() fills the structure with the value of the old secid, ensuring that it is available to the appropriate module hook. The sources of the secid, security_task_getsecid() and security_inode_getsecid(), will be converted to use the lsm_prop structure later in the series. At that point the use of lsmprop_init() is dropped. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> [PM: subject line tweak] Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
committed by
Paul Moore
parent
ed870e35db
commit
870b7fdc66
@@ -3635,7 +3635,7 @@ int selinux_audit_rule_known(struct audit_krule *rule)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int selinux_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule)
|
||||
int selinux_audit_rule_match(struct lsm_prop *prop, u32 field, u32 op, void *vrule)
|
||||
{
|
||||
struct selinux_state *state = &selinux_state;
|
||||
struct selinux_policy *policy;
|
||||
@@ -3661,10 +3661,14 @@ int selinux_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule)
|
||||
goto out;
|
||||
}
|
||||
|
||||
ctxt = sidtab_search(policy->sidtab, sid);
|
||||
/* scaffolding */
|
||||
if (!prop->selinux.secid && prop->scaffold.secid)
|
||||
prop->selinux.secid = prop->scaffold.secid;
|
||||
|
||||
ctxt = sidtab_search(policy->sidtab, prop->selinux.secid);
|
||||
if (unlikely(!ctxt)) {
|
||||
WARN_ONCE(1, "selinux_audit_rule_match: unrecognized SID %d\n",
|
||||
sid);
|
||||
prop->selinux.secid);
|
||||
match = -ENOENT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user