Also protect SP and BP.
authorUlrich Drepper <drepper@redhat.com>
Thu, 22 Dec 2005 17:44:18 +0000 (17:44 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 22 Dec 2005 17:44:18 +0000 (17:44 +0000)
sysdeps/x86_64/__longjmp.S
sysdeps/x86_64/setjmp.S

index becfb4f..dd797e8 100644 (file)
@@ -51,6 +51,8 @@ ENTRY(__longjmp)
        movq (JB_PC*8)(%rdi),%rdx
        movq (JB_RSP*8)(%rdi),%rsp
 #ifdef PTR_DEMANGLE
+       PTR_DEMANGLE (%rbp)
+       PTR_DEMANGLE (%rsp)
        PTR_DEMANGLE (%rdx)
 #endif
        jmpq *%rdx
index 8af5502..39c78c9 100644 (file)
 ENTRY (__sigsetjmp)
        /* Save registers.  */
        movq %rbx, (JB_RBX*8)(%rdi)
+#ifdef PTR_MANGLE
+       movq %rbp, %rax
+       PTR_MANGLE (%rax)
+       movq %rax, (JB_RBP*8)(%rdi)
+#else
        movq %rbp, (JB_RBP*8)(%rdi)
+#endif
        movq %r12, (JB_R12*8)(%rdi)
        movq %r13, (JB_R13*8)(%rdi)
        movq %r14, (JB_R14*8)(%rdi)
        movq %r15, (JB_R15*8)(%rdi)
        leaq 8(%rsp), %rdx      /* Save SP as it will be after we return.  */
+#ifdef PTR_MANGLE
+       PTR_MANGLE (%rdx)
+#endif
        movq %rdx, (JB_RSP*8)(%rdi)
        movq (%rsp), %rax       /* Save PC we are returning to now.  */
 #ifdef PTR_MANGLE