Patch "signal: remove warning about using SI_TKILL in rt_[tg]sigqueueinfo" has been added to the 3.14-stable tree
This is a note to let you know that I've just added the patch titled
signal: remove warning about using SI_TKILL in rt_[tg]sigqueueinfo
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
signal-remove-warning-about-using-si_tkill-in-rt_sigqueueinfo.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
69828dce7af2cb6d08ef5a03de687d422fb7ec1fMon Sep 17 00:00:00 2001
From: Vladimir Davydov <[email protected]>
Date: Thu, 16 Apr 2015 12:47:35 -0700
Subject: signal: remove warning about using SI_TKILL in rt_[tg]sigqueueinfo
From: Vladimir Davydov <[email protected]>
commit 69828dce7af2cb6d08ef5a03de687d422fb7ec1f upstream.
Sending SI_TKILL from rt_[tg]sigqueueinfo was deprecated, so now we issue a warning on the first attempt of doing it. We use WARN_ON_ONCE, which is not informative and, what is worse, taints the kernel, making the trinity syscall fuzzer complain false-positively from time to time.
It does not look like we need this warning at all, because the behaviour changed quite a long time ago (2.6.39), and if an application relies on the old API, it gets EPERM anyway and can issue a warning by itself.
So let us zap the warning in kernel.
--- kernel/signal.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-)
kernel/signal.c +5 -9
@@ -3004,11 +3004,9 @@ static int do_rt_sigqueueinfo(pid_t pid,* 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. */
@@ -3053,12 +3051,10 @@ static int do_rt_tgsigqueueinfo(pid_t tg/* 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);
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/signal-remove-warning-about-using-si_tkill-in-rt_sigqueueinfo.patch