diff options
| author | Jan Engelmohr <jan.engelmohr@mailbox.tu-dresden.de> | 2016-09-04 16:45:09 +0200 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-09-10 00:45:11 +0200 |
| commit | 0a1e8e11acd3cc36b1d65023ce1cb1a06a887b11 (patch) | |
| tree | bd92a01ee850567d86074cca3fb6c928c960fe39 /kernel/signal.c | |
| parent | ade0200dcde3ad70876875392b6bc156155b9b75 (diff) | |
3.10.102-> 3.10.103
Diffstat (limited to 'kernel/signal.c')
| -rw-r--r-- | kernel/signal.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 0991539b3..28db04b54 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3013,11 +3013,9 @@ static int do_rt_sigqueueinfo(pid_t pid, int sig, siginfo_t *info) * Nor can they impersonate a kill()/tgkill(), which adds source info. */ if ((info->si_code >= 0 || info->si_code == SI_TKILL) && - (task_pid_vnr(current) != pid)) { - /* We used to allow any < 0 si_code */ - WARN_ON_ONCE(info->si_code < 0); + (task_pid_vnr(current) != pid)) return -EPERM; - } + info->si_signo = sig; /* POSIX.1b doesn't mention process groups. */ @@ -3062,12 +3060,10 @@ static int do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig, siginfo_t *info) /* Not even root can pretend to send signals from the kernel. * Nor can they impersonate a kill()/tgkill(), which adds source info. */ - if (((info->si_code >= 0 || info->si_code == SI_TKILL)) && - (task_pid_vnr(current) != pid)) { - /* We used to allow any < 0 si_code */ - WARN_ON_ONCE(info->si_code < 0); + if ((info->si_code >= 0 || info->si_code == SI_TKILL) && + (task_pid_vnr(current) != pid)) return -EPERM; - } + info->si_signo = sig; return do_send_specific(tgid, pid, sig, info); |
