Messages in this thread Patch in this message | | | From | Sebastian Andrzej Siewior <> | Subject | [PATCH] posix-timers: Prevent broadcast signals | Date | Fri, 27 Apr 2018 11:34:26 +0200 |
| |
From: Thomas Gleixner <tglx@linutronix.de>
Posix timers should not send broadcast signals and kernel only signals. Prevent it.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/time/posix-timers.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c index b6899b5060bd..4c4cbebb0d71 100644 --- a/kernel/time/posix-timers.c +++ b/kernel/time/posix-timers.c @@ -435,6 +435,7 @@ static enum hrtimer_restart posix_timer_fn(struct hrtimer *timer) static struct pid *good_sigevent(sigevent_t * event) { struct task_struct *rtn = current->group_leader; + int sig = event->sigev_signo; switch (event->sigev_notify) { case SIGEV_SIGNAL | SIGEV_THREAD_ID: @@ -444,7 +445,8 @@ static struct pid *good_sigevent(sigevent_t * event) /* FALLTHRU */ case SIGEV_SIGNAL: case SIGEV_THREAD: - if (event->sigev_signo <= 0 || event->sigev_signo > SIGRTMAX) + if (sig <= 0 || sig > SIGRTMAX || + sig_kernel_only(sig) || sig_kernel_coredump(sig)) return NULL; /* FALLTHRU */ case SIGEV_NONE: -- 2.17.0
| |