audit: remove unused actx param from audit_rule_match
The audit_rule_match() struct audit_context *actx parameter is not used
by any in-tree consumers (selinux, apparmour, integrity, smack).
The audit context is an internal audit structure that should only be
accessed by audit accessor functions.
It was part of commit 03d37d25e0
("LSM/Audit: Introduce generic
Audit LSM hooks") but appears to have never been used.
Remove it.
Please see the github issue
https://github.com/linux-audit/audit-kernel/issues/107
Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
[PM: fixed the referenced commit title]
Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
57d4657716
commit
90462a5bd3
|
@ -1344,7 +1344,6 @@
|
|||
* @field contains the field which relates to current LSM.
|
||||
* @op contains the operator that will be used for matching.
|
||||
* @rule points to the audit rule that will be checked against.
|
||||
* @actx points to the audit context associated with the check.
|
||||
* Return 1 if secid matches the rule, 0 if it does not, -ERRNO on failure.
|
||||
*
|
||||
* @audit_rule_free:
|
||||
|
@ -1764,8 +1763,7 @@ union security_list_options {
|
|||
int (*audit_rule_init)(u32 field, u32 op, char *rulestr,
|
||||
void **lsmrule);
|
||||
int (*audit_rule_known)(struct audit_krule *krule);
|
||||
int (*audit_rule_match)(u32 secid, u32 field, u32 op, void *lsmrule,
|
||||
struct audit_context *actx);
|
||||
int (*audit_rule_match)(u32 secid, u32 field, u32 op, void *lsmrule);
|
||||
void (*audit_rule_free)(void *lsmrule);
|
||||
#endif /* CONFIG_AUDIT */
|
||||
|
||||
|
|
|
@ -1674,8 +1674,7 @@ static inline int security_key_getsecurity(struct key *key, char **_buffer)
|
|||
#ifdef CONFIG_SECURITY
|
||||
int security_audit_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule);
|
||||
int security_audit_rule_known(struct audit_krule *krule);
|
||||
int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule,
|
||||
struct audit_context *actx);
|
||||
int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule);
|
||||
void security_audit_rule_free(void *lsmrule);
|
||||
|
||||
#else
|
||||
|
@ -1692,7 +1691,7 @@ static inline int security_audit_rule_known(struct audit_krule *krule)
|
|||
}
|
||||
|
||||
static inline int security_audit_rule_match(u32 secid, u32 field, u32 op,
|
||||
void *lsmrule, struct audit_context *actx)
|
||||
void *lsmrule)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1355,7 +1355,7 @@ int audit_filter(int msgtype, unsigned int listtype)
|
|||
if (f->lsm_rule) {
|
||||
security_task_getsecid(current, &sid);
|
||||
result = security_audit_rule_match(sid,
|
||||
f->type, f->op, f->lsm_rule, NULL);
|
||||
f->type, f->op, f->lsm_rule);
|
||||
}
|
||||
break;
|
||||
case AUDIT_EXE:
|
||||
|
|
|
@ -631,9 +631,8 @@ static int audit_filter_rules(struct task_struct *tsk,
|
|||
need_sid = 0;
|
||||
}
|
||||
result = security_audit_rule_match(sid, f->type,
|
||||
f->op,
|
||||
f->lsm_rule,
|
||||
ctx);
|
||||
f->op,
|
||||
f->lsm_rule);
|
||||
}
|
||||
break;
|
||||
case AUDIT_OBJ_USER:
|
||||
|
@ -647,13 +646,17 @@ static int audit_filter_rules(struct task_struct *tsk,
|
|||
/* Find files that match */
|
||||
if (name) {
|
||||
result = security_audit_rule_match(
|
||||
name->osid, f->type, f->op,
|
||||
f->lsm_rule, ctx);
|
||||
name->osid,
|
||||
f->type,
|
||||
f->op,
|
||||
f->lsm_rule);
|
||||
} else if (ctx) {
|
||||
list_for_each_entry(n, &ctx->names_list, list) {
|
||||
if (security_audit_rule_match(n->osid, f->type,
|
||||
f->op, f->lsm_rule,
|
||||
ctx)) {
|
||||
if (security_audit_rule_match(
|
||||
n->osid,
|
||||
f->type,
|
||||
f->op,
|
||||
f->lsm_rule)) {
|
||||
++result;
|
||||
break;
|
||||
}
|
||||
|
@ -664,7 +667,7 @@ static int audit_filter_rules(struct task_struct *tsk,
|
|||
break;
|
||||
if (security_audit_rule_match(ctx->ipc.osid,
|
||||
f->type, f->op,
|
||||
f->lsm_rule, ctx))
|
||||
f->lsm_rule))
|
||||
++result;
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -225,8 +225,7 @@ int aa_audit_rule_known(struct audit_krule *rule)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int aa_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule,
|
||||
struct audit_context *actx)
|
||||
int aa_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule)
|
||||
{
|
||||
struct aa_audit_rule *rule = vrule;
|
||||
struct aa_label *label;
|
||||
|
|
|
@ -192,7 +192,6 @@ static inline int complain_error(int error)
|
|||
void aa_audit_rule_free(void *vrule);
|
||||
int aa_audit_rule_init(u32 field, u32 op, char *rulestr, void **vrule);
|
||||
int aa_audit_rule_known(struct audit_krule *rule);
|
||||
int aa_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule,
|
||||
struct audit_context *actx);
|
||||
int aa_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule);
|
||||
|
||||
#endif /* __AA_AUDIT_H */
|
||||
|
|
|
@ -307,8 +307,7 @@ static inline int security_filter_rule_init(u32 field, u32 op, char *rulestr,
|
|||
}
|
||||
|
||||
static inline int security_filter_rule_match(u32 secid, u32 field, u32 op,
|
||||
void *lsmrule,
|
||||
struct audit_context *actx)
|
||||
void *lsmrule)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
@ -340,8 +340,7 @@ retry:
|
|||
rc = security_filter_rule_match(osid,
|
||||
rule->lsm[i].type,
|
||||
Audit_equal,
|
||||
rule->lsm[i].rule,
|
||||
NULL);
|
||||
rule->lsm[i].rule);
|
||||
break;
|
||||
case LSM_SUBJ_USER:
|
||||
case LSM_SUBJ_ROLE:
|
||||
|
@ -349,8 +348,7 @@ retry:
|
|||
rc = security_filter_rule_match(secid,
|
||||
rule->lsm[i].type,
|
||||
Audit_equal,
|
||||
rule->lsm[i].rule,
|
||||
NULL);
|
||||
rule->lsm[i].rule);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1783,11 +1783,9 @@ void security_audit_rule_free(void *lsmrule)
|
|||
call_void_hook(audit_rule_free, lsmrule);
|
||||
}
|
||||
|
||||
int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule,
|
||||
struct audit_context *actx)
|
||||
int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule)
|
||||
{
|
||||
return call_int_hook(audit_rule_match, 0, secid, field, op, lsmrule,
|
||||
actx);
|
||||
return call_int_hook(audit_rule_match, 0, secid, field, op, lsmrule);
|
||||
}
|
||||
#endif /* CONFIG_AUDIT */
|
||||
|
||||
|
|
|
@ -46,13 +46,11 @@ void selinux_audit_rule_free(void *rule);
|
|||
* @field: the field this rule refers to
|
||||
* @op: the operater the rule uses
|
||||
* @rule: pointer to the audit rule to check against
|
||||
* @actx: the audit context (can be NULL) associated with the check
|
||||
*
|
||||
* Returns 1 if the context id matches the rule, 0 if it does not, and
|
||||
* -errno on failure.
|
||||
*/
|
||||
int selinux_audit_rule_match(u32 sid, u32 field, u32 op, void *rule,
|
||||
struct audit_context *actx);
|
||||
int selinux_audit_rule_match(u32 sid, u32 field, u32 op, void *rule);
|
||||
|
||||
/**
|
||||
* selinux_audit_rule_known - check to see if rule contains selinux fields.
|
||||
|
|
|
@ -3376,8 +3376,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,
|
||||
struct audit_context *actx)
|
||||
int selinux_audit_rule_match(u32 sid, u32 field, u32 op, void *vrule)
|
||||
{
|
||||
struct selinux_state *state = &selinux_state;
|
||||
struct context *ctxt;
|
||||
|
|
|
@ -4393,13 +4393,11 @@ static int smack_audit_rule_known(struct audit_krule *krule)
|
|||
* @field: audit rule flags given from user-space
|
||||
* @op: required testing operator
|
||||
* @vrule: smack internal rule presentation
|
||||
* @actx: audit context associated with the check
|
||||
*
|
||||
* The core Audit hook. It's used to take the decision of
|
||||
* whether to audit or not to audit a given object.
|
||||
*/
|
||||
static int smack_audit_rule_match(u32 secid, u32 field, u32 op, void *vrule,
|
||||
struct audit_context *actx)
|
||||
static int smack_audit_rule_match(u32 secid, u32 field, u32 op, void *vrule)
|
||||
{
|
||||
struct smack_known *skp;
|
||||
char *rule = vrule;
|
||||
|
|
Loading…
Reference in New Issue