Fix ____longjmp_chk on x86-64.
authorUlrich Drepper <drepper@redhat.com>
Fri, 31 Jul 2009 19:57:45 +0000 (12:57 -0700)
committerUlrich Drepper <drepper@redhat.com>
Fri, 31 Jul 2009 19:57:45 +0000 (12:57 -0700)
After a recent change to fix CFI in ____longjmp_chk the test of the
ss_flags used the wrong memory location.

ChangeLog
sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S

index 8759b2c..fb046fe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 80e4aff..4e53ea6 100644 (file)
@@ -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