Messages in this thread | | | Subject | Re: sigaltstack breaks swapcontext() | From | Stas Sergeev <> | Date | Thu, 7 Jan 2016 22:10:21 +0300 |
| |
07.01.2016 20:23, Andy Lutomirski пишет: > On Thu, Jan 7, 2016 at 7:33 AM, Stas Sergeev <stsp@list.ru> wrote: >> 06.01.2016 22:53, Andy Lutomirski пишет: >>> On Wed, Jan 6, 2016 at 11:31 AM, Stas Sergeev <stsp@list.ru> wrote: >>>> Exactly. >>>> Do you think this can be ignored? >>>> A man page should then be corrected with EPERM and the >>>> above note removed, right? >>>> >>> I think it can be ignored. I'd go the SS_FORCE route, though, to >>> maintain POSIX compliance. >> I think such a flag would be a wrong thing to do. >> Allowing only SS_DISABLE (without any new flags) keeps >> you still "compatible with posix", and anything beyond >> SS_DISABLE in a sighandler is not needed. >> >> So I think we only have the following options: >> 1. Remove the check and forget (if anything, glibc can >> add the EPERM check to stay compatible with crap). >> 2. Allow only SS_DISABLE. This will mean a large patch, >> touching all arches, but the bonus is the compatibility >> with posix, that no one needs in this particular case. > Why does allowing SS_DISABLE require touching all arches? I mean, if we also consistently return SA_ONSTACK even after SS_DISABLE. This will require kernel to save the ss_flags separately, and not to use "if (ss_size)" checks. Of course if we don't want to return SA_ONSTACK, we should just remove EPERM as I don't think it serves any other purpose than that.
| |