Re: RFC: 'more signals' patch, 2.1.33

Richard Henderson (richard@stommel.tamu.edu)
Tue, 15 Apr 1997 18:04:52 -0500 (CDT)


> > Thus the application, using an increased sigset_t size, sets up an
> > sa_mask with bit 1500 set. A library, having only room for 1024
> > bits, is not able to save the entire set, and so only the low 1024
> > are saved and restored.
>
> But the application itself will (should) never call the kernel
> directly. Everything goes to the libc. And it is easy to filter out
> signal numbers which are higher as the ones which are used for
> compiling the libc.

I wasn't talking about going to the kernel directly.

Again:

libc.so contains:

sigaction@1024 -- a version of sigaction that uses
1024-bit sigset_t
sigaction@2048 -- you get the idea

bar:

Uses sigaction@2048 to set up SIGLOSE.

libfoo.so:

Uses sigaction@1024 to momentarily save and restore
signal state of SIGLOSE.

You've just lost the top 1024 bits of SIGLOSE's sa_mask, and there's
nothing to be done about it in libc, because there's no place to
store the extra bits.

I don't think there's anything that can be done about this, though.

r~