Fix bug with __sig_tramp() + sigaltstack()

This commit is contained in:
Justine Tunney 2023-10-13 01:24:10 -07:00
parent 49b0eaa69f
commit b81a1bd9a8
No known key found for this signature in database
GPG key ID: BE714B4575D6E328

View file

@ -259,8 +259,10 @@ static textwindows int __sig_killer(struct PosixThread *pt, int sig, int sic) {
if (__sig_should_use_altstack(flags, pt->tib)) {
sp = (uintptr_t)pt->tib->tib_sigstack_addr + pt->tib->tib_sigstack_size;
} else {
sp = (nc.Rsp - 128 - sizeof(struct SignalFrame)) & -16;
sp = nc.Rsp;
}
sp -= sizeof(struct SignalFrame);
sp &= -16;
struct SignalFrame *sf = (struct SignalFrame *)sp;
_ntcontext2linux(&sf->ctx, &nc);
bzero(&sf->si, sizeof(sf->si));