Move variable function in lsm_audit.h into SMACK private space
authorThomas Liu <tliu@redhat.com>
Thu, 9 Jul 2009 14:00:29 +0000 (10:00 -0400)
committerJames Morris <jmorris@namei.org>
Thu, 9 Jul 2009 22:54:14 +0000 (08:54 +1000)
Moved variable function in include/linux/lsm_audit.h into the
smack_audit_data struct since it is never used outside of it.

Also removed setting of function in the COMMON_AUDIT_DATA_INIT
macro because that variable is now private to SMACK.

Signed-off-by: Thomas Liu <tliu@redhat.com>
Acked-by: Eric Paris <eparis@redhat.com>
I-dont-see-any-problems-with-it: Casey Schaufler <casey@schaufler-ca.com>
Signed-off-by: James Morris <jmorris@namei.org>
include/linux/lsm_audit.h
security/smack/smack.h
security/smack/smack_access.c

index e461b2c3d711a078bddba5086ee9df5143734ef7..68f7bce572b08cdca5888fc24cd85f4c88fc0044 100644 (file)
@@ -66,11 +66,11 @@ struct common_audit_data {
                } key_struct;
 #endif
        } u;
-       const char *function;
        /* this union contains LSM specific data */
        union {
                /* SMACK data */
                struct smack_audit_data {
+                       const char *function;
                        char *subject;
                        char *object;
                        char *request;
@@ -104,7 +104,7 @@ int ipv6_skb_to_auditdata(struct sk_buff *skb,
 /* Initialize an LSM audit data structure. */
 #define COMMON_AUDIT_DATA_INIT(_d, _t) \
        { memset((_d), 0, sizeof(struct common_audit_data)); \
-        (_d)->type = LSM_AUDIT_DATA_##_t; (_d)->function = __func__; }
+        (_d)->type = LSM_AUDIT_DATA_##_t; }
 
 void common_lsm_audit(struct common_audit_data *a);
 
index 243bec175be050f930189a25d4a4bb6d5dc85ef3..ff180ede3e47f00af6d2af0f8f85b700b1655aa4 100644 (file)
@@ -275,7 +275,7 @@ static inline void smk_ad_init(struct smk_audit_info *a, const char *func,
 {
        memset(a, 0, sizeof(*a));
        a->a.type = type;
-       a->a.function = func;
+       a->a.lsm_priv.smack_audit_data.function = func;
 }
 
 static inline void smk_ad_setfield_u_tsk(struct smk_audit_info *a,
index 513dc1aa16dd1ff5594745b463dd67118648705a..dd84877dff30e5757ec0a36c904d9811a0206f9d 100644 (file)
@@ -241,7 +241,8 @@ static void smack_log_callback(struct audit_buffer *ab, void *a)
 {
        struct common_audit_data *ad = a;
        struct smack_audit_data *sad = &ad->lsm_priv.smack_audit_data;
-       audit_log_format(ab, "lsm=SMACK fn=%s action=%s", ad->function,
+       audit_log_format(ab, "lsm=SMACK fn=%s action=%s",
+                        ad->lsm_priv.smack_audit_data.function,
                         sad->result ? "denied" : "granted");
        audit_log_format(ab, " subject=");
        audit_log_untrustedstring(ab, sad->subject);
@@ -274,8 +275,8 @@ void smack_log(char *subject_label, char *object_label, int request,
        if (result == 0 && (log_policy & SMACK_AUDIT_ACCEPT) == 0)
                return;
 
-       if (a->function == NULL)
-               a->function = "unknown";
+       if (a->lsm_priv.smack_audit_data.function == NULL)
+               a->lsm_priv.smack_audit_data.function = "unknown";
 
        /* end preparing the audit data */
        sad = &a->lsm_priv.smack_audit_data;