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 | { } |
