audit: remove unused actx param from audit_rule_match
authorRichard Guy Briggs <rgb@redhat.com>
Thu, 31 Jan 2019 16:52:11 +0000 (11:52 -0500)
committerPaul Moore <paul@paul-moore.com>
Fri, 1 Feb 2019 04:00:15 +0000 (23:00 -0500)
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 03d37d25e0f9 ("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>
12 files changed:
include/linux/lsm_hooks.h
include/linux/security.h
kernel/auditfilter.c
kernel/auditsc.c
security/apparmor/audit.c
security/apparmor/include/audit.h
security/integrity/ima/ima.h
security/integrity/ima/ima_policy.c
security/security.c
security/selinux/include/audit.h
security/selinux/ss/services.c
security/smack/smack_lsm.c

index 9a0bdf91e6467bc1c4dae2629b9608a4047533ef..d0b5c7a0583270e2676d87d83dbb5d274618a1a7 100644 (file)
  *     @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 */
 
index dbfb5a66babb5ae8ed99b7e13095fc085fba01c8..e8febec62ffb2bd255847451989d1f39648acb95 100644 (file)
@@ -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;
 }
index 26a80a9d43a984ccea70721f89a4038844ae8fa6..add360b46b38c25944de7074bbbf94563d140d4e 100644 (file)
@@ -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:
index 68da7100109638cbbc590d0155ca57258f5007f1..7d37cb1e4aef4ded90843fc8e9911aefb05c9173 100644 (file)
@@ -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;
index eeaddfe0c0fb9c3999453451de1899db81a9ad84..5a8b9cded4f269a963a6dd3528689bb89e5759f8 100644 (file)
@@ -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;
index b8c8b1066b0a126ad4ac50f343a721cbabcd8748..ee559bc2acb86c330a7ab545f89aa19ba1313b6e 100644 (file)
@@ -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 */
index cc12f3449a728e27030bacb821242ef1c380d746..026163f37ba1e8a0a5842242658e027e6d98588e 100644 (file)
@@ -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;
 }
index 8bc8a1c8cb3f8cc3cf03fc3255d568438baa580f..26fa9d9723f64e532699558cd298b1a858389fd8 100644 (file)
@@ -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;
                }
index f1b8d2587639668a84cc3db1c73e71ee79f86134..5f954b179a8e31a605832ba5dd02dc5225d374fe 100644 (file)
@@ -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 */
 
index 1bdf973433cc20c7d5dc74fe8172047ce965d48a..e51a81ffb8c915eabf35404c62eb53d03c76bb09 100644 (file)
@@ -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.
index dd44126c8d1445ab4f26e225a2fd8537c88bbf1a..0b7e33f6aa59e7e946f28e961bde6cde63006475 100644 (file)
@@ -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;
index 430d4f35e55c0f2a77cfd81c3f3685b8c8390500..403513df42fcc26f521c21641cb647c0e407713e 100644 (file)
@@ -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;