SA_ONSTACK: man page and glibc reference manual in conflict

Florian Weimer fweimer@redhat.com
Mon Jan 31 21:53:13 GMT 2022


* Alejandro Colomar:

> Hi all,
>
> On 1/31/22 10:29, Ivan Zuboff wrote:
>> Hello!
>> 
>> Man page says:
>> SA_ONSTACK
>>               Call the signal handler on an alternate signal stack
>>               provided by sigaltstack(2).  *If an alternate stack is not
>>               available, the default stack will be used.*  This flag is
>>               meaningful only when establishing a signal handler.
>> https://man7.org/linux/man-pages/man2/sigaction.2.html
>> 
>> glibc reference manual says:
>> Macro: int SA_ONSTACK
>> If this flag is set for a particular signal number, the system uses
>> the signal stack when delivering that kind of signal. See Signal
>> Stack. *If a signal with this flag arrives and you have not set a
>> signal stack, the system terminates the program with SIGILL.*
>> https://www.gnu.org/software/libc/manual/html_node/Flags-for-Sigaction.html
>> 
>> As far as I understand, statements in *stars* are in conflict. glibc
>> documentation says that "While the glibc manual remains the canonical
>> source for API descriptions, the man-pages are an excellent
>> reference.", so I decided to mail you supposing that man page is
>> incorrect in this regard.
>> https://www.gnu.org/software/libc/documentation.html
>> 
>> Please correct me if I'm wrong. Also, sorry for my bad English, this
>> is not my native language.
>> 
>> Best regards,
>> Ivan
>
> I received this bug report on linux-man@.  The report is about a text
> that predates git in the man-pages.  Could you please confirm the bug,
> and check if anything else needs to be fixed too?

It's a bug in the glibc documentation.  POSIX says:

| SA_ONSTACK
|     [XSI] [Option Start] If set and an alternate signal stack has been
|     declared with sigaltstack(), the signal shall be delivered to the
|     calling process on that stack. Otherwise, the signal shall be
|     delivered on the current stack. [Option End]

And that's also the Linux behavior.

Thanks,
Florian



More information about the Libc-alpha mailing list