On 02/01, Stas Sergeev wrote:
01.02.2016 20:09, Oleg Nesterov пишет:
quoted
OK, I didn't notice you modified save_altstack_ex() to use ->sas_ss_flags instead
of sas_ss_flags()... still doesn't look right, in this case restore_altstack() will
not restore sas_ss_size/sas_ss_sp and they can be changed by signal handler.
How?
Trying to change them in a sighandler with sigaltstack()
will get EPERM.
Only if on_sig_stack() and this is not true if we change the stack.
quoted
Anyway, whatever I missed I agree with Andy, SS_FORCE looks simpler and better to me.
But perhaps you missed the most important thing, that
it is not possible to change the altstack in sighandler - you'll
get EPERM, even with my patch.
See above.
But with SS_FORCE this is
exactly not the case.
Yes, and SS_FORCE means "I know what I do", looks very simple.
Also it would be interesting to know what do you think about
just removing the EPERM check instead of this all.
I won't argue, but to me it would be better to keep this EPERM if !force.
Just because we should avoid the incompatible changes if possible.
Oleg.