diff options
Diffstat (limited to 'kernel/auditsc.c')
-rw-r--r-- | kernel/auditsc.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index e59ffc7fc522..1c2333155893 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -2249,26 +2249,27 @@ void __audit_ptrace(struct task_struct *t) | |||
2249 | * If the audit subsystem is being terminated, record the task (pid) | 2249 | * If the audit subsystem is being terminated, record the task (pid) |
2250 | * and uid that is doing that. | 2250 | * and uid that is doing that. |
2251 | */ | 2251 | */ |
2252 | int __audit_signal_info(int sig, struct task_struct *t) | 2252 | int audit_signal_info(int sig, struct task_struct *t) |
2253 | { | 2253 | { |
2254 | struct audit_aux_data_pids *axp; | 2254 | struct audit_aux_data_pids *axp; |
2255 | struct task_struct *tsk = current; | 2255 | struct task_struct *tsk = current; |
2256 | struct audit_context *ctx = tsk->audit_context; | 2256 | struct audit_context *ctx = tsk->audit_context; |
2257 | kuid_t uid = current_uid(), t_uid = task_uid(t); | 2257 | kuid_t uid = current_uid(), t_uid = task_uid(t); |
2258 | 2258 | ||
2259 | if (auditd_test_task(t)) { | 2259 | if (auditd_test_task(t) && |
2260 | if (sig == SIGTERM || sig == SIGHUP || sig == SIGUSR1 || sig == SIGUSR2) { | 2260 | (sig == SIGTERM || sig == SIGHUP || |
2261 | audit_sig_pid = task_tgid_nr(tsk); | 2261 | sig == SIGUSR1 || sig == SIGUSR2)) { |
2262 | if (uid_valid(tsk->loginuid)) | 2262 | audit_sig_pid = task_tgid_nr(tsk); |
2263 | audit_sig_uid = tsk->loginuid; | 2263 | if (uid_valid(tsk->loginuid)) |
2264 | else | 2264 | audit_sig_uid = tsk->loginuid; |
2265 | audit_sig_uid = uid; | 2265 | else |
2266 | security_task_getsecid(tsk, &audit_sig_sid); | 2266 | audit_sig_uid = uid; |
2267 | } | 2267 | security_task_getsecid(tsk, &audit_sig_sid); |
2268 | if (!audit_signals || audit_dummy_context()) | ||
2269 | return 0; | ||
2270 | } | 2268 | } |
2271 | 2269 | ||
2270 | if (!audit_signals || audit_dummy_context()) | ||
2271 | return 0; | ||
2272 | |||
2272 | /* optimize the common case by putting first signal recipient directly | 2273 | /* optimize the common case by putting first signal recipient directly |
2273 | * in audit_context */ | 2274 | * in audit_context */ |
2274 | if (!ctx->target_pid) { | 2275 | if (!ctx->target_pid) { |