You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Indeed our stack-copying hack in do-syscall.h assumes we can copy all the way back from the current top-of-stack to the trap site's top-of-stack (marked by the saved stack pointer in the signal frame). If we're not on the same stack, that's a problem.
We can easily split that case off. It gets interesting on the return path though. Currently we do two sigreturns for each clone()-servicing trap, which is pretty wacky. Probably the way to handle it is to overwrite pretcode in the child's sigframe, to instead use a fake restorer that doesn't do sigreturn. We can do that before the child is spawned.
Again remember that trap/signal-based handling needs to go away anyway, so don't spend too much time on this.
I haven't tested it but am pretty sure programs using
sigaltstack
will screw with one or more things.The text was updated successfully, but these errors were encountered: