diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-07-31 12:57:45 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-07-31 12:57:45 -0700 |
commit | 66ae9e50a336d87f943cc6314a0d405820fcdf8b (patch) | |
tree | d57e6527d77a44c66c7cf62efc70bb14e41c160a | |
parent | 6f6f1215f68e5ae15ad18373234815fe7b2acc9e (diff) | |
download | glibc-66ae9e50a336d87f943cc6314a0d405820fcdf8b.zip glibc-66ae9e50a336d87f943cc6314a0d405820fcdf8b.tar.gz glibc-66ae9e50a336d87f943cc6314a0d405820fcdf8b.tar.bz2 |
Fix ____longjmp_chk on x86-64.
After a recent change to fix CFI in ____longjmp_chk the test of the
ss_flags used the wrong memory location.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S | 4 |
2 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2009-07-31 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (longjmp_msg): Get + ss_flags from the correct location. + 2009-07-31 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/i386/i686/Makefile (sysdep_routines): Add cacheinfo. diff --git a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S index 80e4aff..4e53ea6 100644 --- a/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S @@ -77,7 +77,7 @@ ENTRY(____longjmp_chk) leaq 24(%rsp), %rsp cfi_adjust_cfa_offset(-24) jne .Lok - movl 8(%rsp), %eax + movl -16(%rsp), %eax andl $1, %eax .Lok: @@ -122,7 +122,7 @@ ENTRY(____longjmp_chk) syscall addq $24, %rsp cfi_adjust_cfa_offset(-24) - testl $1, 8(%rsp) + testl $1, -16(%rsp) je .Lout .Lfail: xchgq %r8, %rsp |