hurd: Fix stack pointer corruption in syscall

Thanks Justus Winter for the report.

	* sysdeps/mach/i386/syscall.S (syscall): Push back syscall number.
This commit is contained in:
Samuel Thibault 2016-09-22 02:43:39 +02:00
parent e67f54ab1a
commit 444eacba82
2 changed files with 4 additions and 0 deletions

View File

@ -14,6 +14,7 @@
_hurd_malloc_fork_prepare after that. Call _hurd_malloc_fork_parent
before __malloc_fork_unlock_parent and _hurd_malloc_fork_child before
__malloc_fork_unlock_child.
* sysdeps/mach/i386/syscall.S (syscall): Push back syscall number.
2016-09-21 James Greenhalgh <james.greenhalgh@arm.com>

View File

@ -22,5 +22,8 @@ ENTRY (syscall)
popl %eax /* Pop syscall number into %eax. */
pushl %ecx /* Push back return address. */
.byte 0x9a, 0, 0, 0, 0, 7, 0 /* lcall $7, $0 -- gas bug */
popl %ecx /* Pop return address into %ecx. */
pushl $0 /* Push back dumb syscall number. */
pushl %ecx /* Push back return address. */
ret
END (syscall)