diff options
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 167b535fe1a9..80e8a6489f97 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -187,7 +187,7 @@ static struct sigqueue *__sigqueue_alloc(struct task_struct *t, gfp_t flags, | |||
187 | * In order to avoid problems with "switch_user()", we want to make | 187 | * In order to avoid problems with "switch_user()", we want to make |
188 | * sure that the compiler doesn't re-load "t->user" | 188 | * sure that the compiler doesn't re-load "t->user" |
189 | */ | 189 | */ |
190 | user = t->user; | 190 | user = t->cred->user; |
191 | barrier(); | 191 | barrier(); |
192 | atomic_inc(&user->sigpending); | 192 | atomic_inc(&user->sigpending); |
193 | if (override_rlimit || | 193 | if (override_rlimit || |
@@ -582,8 +582,8 @@ static int check_kill_permission(int sig, struct siginfo *info, | |||
582 | 582 | ||
583 | uid = current_uid(); | 583 | uid = current_uid(); |
584 | euid = current_euid(); | 584 | euid = current_euid(); |
585 | if ((euid ^ t->suid) && (euid ^ t->uid) && | 585 | if ((euid ^ t->cred->suid) && (euid ^ t->cred->uid) && |
586 | (uid ^ t->suid) && (uid ^ t->uid) && | 586 | (uid ^ t->cred->suid) && (uid ^ t->cred->uid) && |
587 | !capable(CAP_KILL)) { | 587 | !capable(CAP_KILL)) { |
588 | switch (sig) { | 588 | switch (sig) { |
589 | case SIGCONT: | 589 | case SIGCONT: |
@@ -1100,8 +1100,8 @@ int kill_pid_info_as_uid(int sig, struct siginfo *info, struct pid *pid, | |||
1100 | goto out_unlock; | 1100 | goto out_unlock; |
1101 | } | 1101 | } |
1102 | if ((info == SEND_SIG_NOINFO || (!is_si_special(info) && SI_FROMUSER(info))) | 1102 | if ((info == SEND_SIG_NOINFO || (!is_si_special(info) && SI_FROMUSER(info))) |
1103 | && (euid != p->suid) && (euid != p->uid) | 1103 | && (euid != p->cred->suid) && (euid != p->cred->uid) |
1104 | && (uid != p->suid) && (uid != p->uid)) { | 1104 | && (uid != p->cred->suid) && (uid != p->cred->uid)) { |
1105 | ret = -EPERM; | 1105 | ret = -EPERM; |
1106 | goto out_unlock; | 1106 | goto out_unlock; |
1107 | } | 1107 | } |
@@ -1374,7 +1374,7 @@ int do_notify_parent(struct task_struct *tsk, int sig) | |||
1374 | info.si_pid = task_pid_nr_ns(tsk, tsk->parent->nsproxy->pid_ns); | 1374 | info.si_pid = task_pid_nr_ns(tsk, tsk->parent->nsproxy->pid_ns); |
1375 | rcu_read_unlock(); | 1375 | rcu_read_unlock(); |
1376 | 1376 | ||
1377 | info.si_uid = tsk->uid; | 1377 | info.si_uid = tsk->cred->uid; |
1378 | 1378 | ||
1379 | thread_group_cputime(tsk, &cputime); | 1379 | thread_group_cputime(tsk, &cputime); |
1380 | info.si_utime = cputime_to_jiffies(cputime.utime); | 1380 | info.si_utime = cputime_to_jiffies(cputime.utime); |
@@ -1445,7 +1445,7 @@ static void do_notify_parent_cldstop(struct task_struct *tsk, int why) | |||
1445 | info.si_pid = task_pid_nr_ns(tsk, tsk->parent->nsproxy->pid_ns); | 1445 | info.si_pid = task_pid_nr_ns(tsk, tsk->parent->nsproxy->pid_ns); |
1446 | rcu_read_unlock(); | 1446 | rcu_read_unlock(); |
1447 | 1447 | ||
1448 | info.si_uid = tsk->uid; | 1448 | info.si_uid = tsk->cred->uid; |
1449 | 1449 | ||
1450 | info.si_utime = cputime_to_clock_t(tsk->utime); | 1450 | info.si_utime = cputime_to_clock_t(tsk->utime); |
1451 | info.si_stime = cputime_to_clock_t(tsk->stime); | 1451 | info.si_stime = cputime_to_clock_t(tsk->stime); |
@@ -1713,7 +1713,7 @@ static int ptrace_signal(int signr, siginfo_t *info, | |||
1713 | info->si_errno = 0; | 1713 | info->si_errno = 0; |
1714 | info->si_code = SI_USER; | 1714 | info->si_code = SI_USER; |
1715 | info->si_pid = task_pid_vnr(current->parent); | 1715 | info->si_pid = task_pid_vnr(current->parent); |
1716 | info->si_uid = current->parent->uid; | 1716 | info->si_uid = current->parent->cred->uid; |
1717 | } | 1717 | } |
1718 | 1718 | ||
1719 | /* If the (new) signal is now blocked, requeue it. */ | 1719 | /* If the (new) signal is now blocked, requeue it. */ |