mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-27 04:22:58 +00:00
apparmor: combine common_audit_data and apparmor_audit_data
Everywhere where common_audit_data is used apparmor audit_data is also used. We can simplify the code and drop the use of the aad macro everywhere by combining the two structures. Reviewed-by: Georgia Garcia <georgia.garcia@canonical.com> Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
@@ -152,33 +152,35 @@ struct apparmor_audit_data {
|
||||
unsigned long flags;
|
||||
} mnt;
|
||||
};
|
||||
|
||||
struct common_audit_data common;
|
||||
};
|
||||
|
||||
/* macros for dealing with apparmor_audit_data structure */
|
||||
#define aad(SA) ((SA)->apparmor_audit_data)
|
||||
#define aad(SA) (container_of(SA, struct apparmor_audit_data, common))
|
||||
#define aad_of_va(VA) aad((struct common_audit_data *)(VA))
|
||||
|
||||
#define DEFINE_AUDIT_DATA(NAME, T, C, X) \
|
||||
/* TODO: cleanup audit init so we don't need _aad = {0,} */ \
|
||||
struct apparmor_audit_data NAME ## _aad = { \
|
||||
struct apparmor_audit_data NAME = { \
|
||||
.class = (C), \
|
||||
.op = (X), \
|
||||
}; \
|
||||
struct common_audit_data NAME = \
|
||||
{ \
|
||||
.type = (T), \
|
||||
.u.tsk = NULL, \
|
||||
}; \
|
||||
NAME.apparmor_audit_data = &(NAME ## _aad)
|
||||
.common.type = (T), \
|
||||
.common.u.tsk = NULL, \
|
||||
.common.apparmor_audit_data = &NAME, \
|
||||
};
|
||||
|
||||
void aa_audit_msg(int type, struct common_audit_data *sa,
|
||||
void aa_audit_msg(int type, struct apparmor_audit_data *ad,
|
||||
void (*cb) (struct audit_buffer *, void *));
|
||||
int aa_audit(int type, struct aa_profile *profile, struct common_audit_data *sa,
|
||||
int aa_audit(int type, struct aa_profile *profile,
|
||||
struct apparmor_audit_data *ad,
|
||||
void (*cb) (struct audit_buffer *, void *));
|
||||
|
||||
#define aa_audit_error(ERROR, SA, CB) \
|
||||
#define aa_audit_error(ERROR, AD, CB) \
|
||||
({ \
|
||||
aad((SA))->error = (ERROR); \
|
||||
aa_audit_msg(AUDIT_APPARMOR_ERROR, (SA), (CB)); \
|
||||
aad((SA))->error; \
|
||||
(AD)->error = (ERROR); \
|
||||
aa_audit_msg(AUDIT_APPARMOR_ERROR, (AD), (CB)); \
|
||||
(AD)->error; \
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user