don't reject unknown/future flags in sigaltstack, allow SS_AUTODISARM
authorRich Felker <dalias@aerifal.cx>
Tue, 5 Mar 2019 16:02:15 +0000 (11:02 -0500)
committerRich Felker <dalias@aerifal.cx>
Tue, 5 Mar 2019 16:08:46 +0000 (11:08 -0500)
commit4918b7fb0d9f3d3fd4b46be3313901fbd772064b
tree9559680400635982c454e54a648d2627758dae04
parent43e7efb46555f13a556d92944ac05c19b8929b60
don't reject unknown/future flags in sigaltstack, allow SS_AUTODISARM

historically, and likely accidentally, sigaltstack was specified to
fail with EINVAL if any flag bit other than SS_DISABLE was set. the
resolution of Austin Group issue 1187 fixes this so that the
requirement is only to fail for SS_ONSTACK (which cannot be set) or
"invalid" flags.

Linux fails on the kernel side for invalid flags, but historically
accepts SS_ONSTACK as a no-op, so it needs to be rejected in userspace
still.

with this change, the Linux-specific SS_AUTODISARM, provided since
commit 9680e1d03a794b0e0d5815c749478228ed40a36d but unusable due to
rejection at runtime, is now usable.
src/signal/sigaltstack.c