2002-04-18 05:55:14

by Christopher Yeoh

[permalink] [raw]
Subject: [PATCH] SIGURG incorrectly delivered to process


If a process is sent a SIGURG signal and it is blocking SIGURG
signals, when the process subsequently unblocks SIGURG signals it will
be terminated even if it is set to the default action (SIG_DFL) which
is specified by SUSv3 to ignore that signal.

The following patch fixes the problem:

--- linux-2.4.18/arch/i386/kernel/signal.c~ Thu Mar 21 16:04:30 2002
+++ linux-2.4.18/arch/i386/kernel/signal.c Thu Apr 18 12:19:37 2002
@@ -658,7 +658,7 @@
continue;

switch (signr) {
- case SIGCONT: case SIGCHLD: case SIGWINCH:
+ case SIGCONT: case SIGCHLD: case SIGWINCH: case SIGURG:
continue;

case SIGTSTP: case SIGTTIN: case SIGTTOU:

A quick browse of the other architectures indicates that most (if not
all) of them also need the same fix applied to their arch specific
signal.c files.

Chris
--
[email protected]
IBM OzLabs Linux Development Group
Canberra, Australia


2002-04-23 21:55:35

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: [PATCH] SIGURG incorrectly delivered to process



On Thu, 18 Apr 2002, Christopher Yeoh wrote:

>
> If a process is sent a SIGURG signal and it is blocking SIGURG
> signals, when the process subsequently unblocks SIGURG signals it will
> be terminated even if it is set to the default action (SIG_DFL) which
> is specified by SUSv3 to ignore that signal.
>
> The following patch fixes the problem:
>
> --- linux-2.4.18/arch/i386/kernel/signal.c~ Thu Mar 21 16:04:30 2002
> +++ linux-2.4.18/arch/i386/kernel/signal.c Thu Apr 18 12:19:37 2002
> @@ -658,7 +658,7 @@
> continue;
>
> switch (signr) {
> - case SIGCONT: case SIGCHLD: case SIGWINCH:
> + case SIGCONT: case SIGCHLD: case SIGWINCH: case SIGURG:
> continue;
>
> case SIGTSTP: case SIGTTIN: case SIGTTOU:
>
> A quick browse of the other architectures indicates that most (if not
> all) of them also need the same fix applied to their arch specific
> signal.c files.

Christopher,

Could you please fixup (and test ;)) and other archs too ?

2002-04-25 18:59:51

by David Mosberger

[permalink] [raw]
Subject: Re: [PATCH] SIGURG incorrectly delivered to process

>>>>> On Thu, 18 Apr 2002 15:52:32 +1000, Christopher Yeoh <[email protected]> said:

Christopher> If a process is sent a SIGURG signal and it is blocking
Christopher> SIGURG signals, when the process subsequently unblocks
Christopher> SIGURG signals it will be terminated even if it is set
Christopher> to the default action (SIG_DFL) which is specified by
Christopher> SUSv3 to ignore that signal.

Looks like a correct fix to me. I made this change to the ia64 tree.

Thanks,

--david