Move variable function in lsm_audit.h into SMACK private space

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>
This commit is contained in:
Thomas Liu 2009-07-09 10:00:29 -04:00 committed by James Morris
parent ac7242142b
commit ed5215a214
3 changed files with 7 additions and 6 deletions

View File

@ -66,11 +66,11 @@ struct common_audit_data {
} key_struct; } key_struct;
#endif #endif
} u; } u;
const char *function;
/* this union contains LSM specific data */ /* this union contains LSM specific data */
union { union {
/* SMACK data */ /* SMACK data */
struct smack_audit_data { struct smack_audit_data {
const char *function;
char *subject; char *subject;
char *object; char *object;
char *request; char *request;
@ -104,7 +104,7 @@ int ipv6_skb_to_auditdata(struct sk_buff *skb,
/* Initialize an LSM audit data structure. */ /* Initialize an LSM audit data structure. */
#define COMMON_AUDIT_DATA_INIT(_d, _t) \ #define COMMON_AUDIT_DATA_INIT(_d, _t) \
{ memset((_d), 0, sizeof(struct common_audit_data)); \ { 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); void common_lsm_audit(struct common_audit_data *a);

View File

@ -275,7 +275,7 @@ static inline void smk_ad_init(struct smk_audit_info *a, const char *func,
{ {
memset(a, 0, sizeof(*a)); memset(a, 0, sizeof(*a));
a->a.type = type; 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, static inline void smk_ad_setfield_u_tsk(struct smk_audit_info *a,

View File

@ -241,7 +241,8 @@ static void smack_log_callback(struct audit_buffer *ab, void *a)
{ {
struct common_audit_data *ad = a; struct common_audit_data *ad = a;
struct smack_audit_data *sad = &ad->lsm_priv.smack_audit_data; 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"); sad->result ? "denied" : "granted");
audit_log_format(ab, " subject="); audit_log_format(ab, " subject=");
audit_log_untrustedstring(ab, sad->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) if (result == 0 && (log_policy & SMACK_AUDIT_ACCEPT) == 0)
return; return;
if (a->function == NULL) if (a->lsm_priv.smack_audit_data.function == NULL)
a->function = "unknown"; a->lsm_priv.smack_audit_data.function = "unknown";
/* end preparing the audit data */ /* end preparing the audit data */
sad = &a->lsm_priv.smack_audit_data; sad = &a->lsm_priv.smack_audit_data;