mirror of git://sourceware.org/git/glibc.git
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:
parent
e67f54ab1a
commit
444eacba82
|
@ -14,6 +14,7 @@
|
||||||
_hurd_malloc_fork_prepare after that. Call _hurd_malloc_fork_parent
|
_hurd_malloc_fork_prepare after that. Call _hurd_malloc_fork_parent
|
||||||
before __malloc_fork_unlock_parent and _hurd_malloc_fork_child before
|
before __malloc_fork_unlock_parent and _hurd_malloc_fork_child before
|
||||||
__malloc_fork_unlock_child.
|
__malloc_fork_unlock_child.
|
||||||
|
* sysdeps/mach/i386/syscall.S (syscall): Push back syscall number.
|
||||||
|
|
||||||
2016-09-21 James Greenhalgh <james.greenhalgh@arm.com>
|
2016-09-21 James Greenhalgh <james.greenhalgh@arm.com>
|
||||||
|
|
||||||
|
|
|
@ -22,5 +22,8 @@ ENTRY (syscall)
|
||||||
popl %eax /* Pop syscall number into %eax. */
|
popl %eax /* Pop syscall number into %eax. */
|
||||||
pushl %ecx /* Push back return address. */
|
pushl %ecx /* Push back return address. */
|
||||||
.byte 0x9a, 0, 0, 0, 0, 7, 0 /* lcall $7, $0 -- gas bug */
|
.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
|
ret
|
||||||
END (syscall)
|
END (syscall)
|
||||||
|
|
Loading…
Reference in New Issue