diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/audit.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h index 22cfddb75566..36dffeccebdb 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -66,12 +66,16 @@ struct audit_krule { | |||
66 | 66 | ||
67 | struct audit_field { | 67 | struct audit_field { |
68 | u32 type; | 68 | u32 type; |
69 | u32 val; | 69 | union { |
70 | kuid_t uid; | 70 | u32 val; |
71 | kgid_t gid; | 71 | kuid_t uid; |
72 | kgid_t gid; | ||
73 | struct { | ||
74 | char *lsm_str; | ||
75 | void *lsm_rule; | ||
76 | }; | ||
77 | }; | ||
72 | u32 op; | 78 | u32 op; |
73 | char *lsm_str; | ||
74 | void *lsm_rule; | ||
75 | }; | 79 | }; |
76 | 80 | ||
77 | extern int is_audit_feature_set(int which); | 81 | extern int is_audit_feature_set(int which); |
@@ -109,12 +113,13 @@ extern void audit_log_session_info(struct audit_buffer *ab); | |||
109 | #endif | 113 | #endif |
110 | 114 | ||
111 | #ifdef CONFIG_AUDITSYSCALL | 115 | #ifdef CONFIG_AUDITSYSCALL |
116 | #include <asm/syscall.h> /* for syscall_get_arch() */ | ||
117 | |||
112 | /* These are defined in auditsc.c */ | 118 | /* These are defined in auditsc.c */ |
113 | /* Public API */ | 119 | /* Public API */ |
114 | extern int audit_alloc(struct task_struct *task); | 120 | extern int audit_alloc(struct task_struct *task); |
115 | extern void __audit_free(struct task_struct *task); | 121 | extern void __audit_free(struct task_struct *task); |
116 | extern void __audit_syscall_entry(int arch, | 122 | extern void __audit_syscall_entry(int major, unsigned long a0, unsigned long a1, |
117 | int major, unsigned long a0, unsigned long a1, | ||
118 | unsigned long a2, unsigned long a3); | 123 | unsigned long a2, unsigned long a3); |
119 | extern void __audit_syscall_exit(int ret_success, long ret_value); | 124 | extern void __audit_syscall_exit(int ret_success, long ret_value); |
120 | extern struct filename *__audit_reusename(const __user char *uptr); | 125 | extern struct filename *__audit_reusename(const __user char *uptr); |
@@ -141,12 +146,12 @@ static inline void audit_free(struct task_struct *task) | |||
141 | if (unlikely(task->audit_context)) | 146 | if (unlikely(task->audit_context)) |
142 | __audit_free(task); | 147 | __audit_free(task); |
143 | } | 148 | } |
144 | static inline void audit_syscall_entry(int arch, int major, unsigned long a0, | 149 | static inline void audit_syscall_entry(int major, unsigned long a0, |
145 | unsigned long a1, unsigned long a2, | 150 | unsigned long a1, unsigned long a2, |
146 | unsigned long a3) | 151 | unsigned long a3) |
147 | { | 152 | { |
148 | if (unlikely(current->audit_context)) | 153 | if (unlikely(current->audit_context)) |
149 | __audit_syscall_entry(arch, major, a0, a1, a2, a3); | 154 | __audit_syscall_entry(major, a0, a1, a2, a3); |
150 | } | 155 | } |
151 | static inline void audit_syscall_exit(void *pt_regs) | 156 | static inline void audit_syscall_exit(void *pt_regs) |
152 | { | 157 | { |
@@ -322,7 +327,7 @@ static inline int audit_alloc(struct task_struct *task) | |||
322 | } | 327 | } |
323 | static inline void audit_free(struct task_struct *task) | 328 | static inline void audit_free(struct task_struct *task) |
324 | { } | 329 | { } |
325 | static inline void audit_syscall_entry(int arch, int major, unsigned long a0, | 330 | static inline void audit_syscall_entry(int major, unsigned long a0, |
326 | unsigned long a1, unsigned long a2, | 331 | unsigned long a1, unsigned long a2, |
327 | unsigned long a3) | 332 | unsigned long a3) |
328 | { } | 333 | { } |