1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:38:11 +00:00

Kernel: Add SysV stack alignment to signal trampoline

In both dispatch signal and asm_signal_trampoline we
now ensure that the stack is 16 byte aligned, as per
the System V ABI.
This commit is contained in:
Drew Stratford 2019-09-05 23:35:57 +12:00 committed by Andreas Kling
parent 81d0f96f20
commit 95fe775d81
2 changed files with 9 additions and 2 deletions

View file

@ -746,10 +746,11 @@ asm(
"push ebp\n"
"mov ebp, esp\n"
"push eax\n" // we have to store eax 'cause it might be the return value from a syscall
"sub esp, 4\n" // align the stack to 16 bytes
"mov eax, [ebp+12]\n" // push the signal code
"push eax\n"
"call [ebp+8]\n" // call the signal handler
"add esp, 4\n"
"add esp, 8\n"
"mov eax, 0x2d\n" // FIXME: We shouldn't be hardcoding this.
"int 0x82\n" // sigreturn syscall
"asm_signal_trampoline_end:\n"