aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/__longjmp.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-30 17:31:48 -0700
committerUlrich Drepper <drepper@redhat.com>2009-07-30 17:31:48 -0700
commit5ead9ce5c788e7dbb0bd01888c4bcb37a8bc2ff1 (patch)
treefaf3f4efb3881c34c4eeb54a60f4b1f0e1570ef5 /sysdeps/x86_64/__longjmp.S
parent2dec6007d183aa51abedbbb048382973129f3935 (diff)
downloadglibc-5ead9ce5c788e7dbb0bd01888c4bcb37a8bc2ff1.tar
glibc-5ead9ce5c788e7dbb0bd01888c4bcb37a8bc2ff1.tar.gz
glibc-5ead9ce5c788e7dbb0bd01888c4bcb37a8bc2ff1.tar.bz2
glibc-5ead9ce5c788e7dbb0bd01888c4bcb37a8bc2ff1.zip
Fix x86-64 ____longjmp_chk to handle signal stacks.
The simple test previously used might trigger if the longjmp jumps from the signal stack to the normal stack. We now explicitly test for this case.
Diffstat (limited to 'sysdeps/x86_64/__longjmp.S')
-rw-r--r--sysdeps/x86_64/__longjmp.S6
1 files changed, 1 insertions, 5 deletions
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index 24552ece37..b045c04184 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -34,16 +34,12 @@ ENTRY(__longjmp)
PTR_DEMANGLE (%r9)
PTR_DEMANGLE (%rdx)
#endif
-#ifdef CHECK_RSP
- CHECK_RSP (%r8)
-#endif
/* We add unwind information for the target here. */
cfi_def_cfa(%rdi, 0)
cfi_register(%rsp,%r8)
cfi_register(%rbp,%r9)
cfi_register(%rip,%rdx)
cfi_offset(%rbx,JB_RBX*8)
- cfi_offset(%rbp,JB_RBP*8)
cfi_offset(%r12,JB_R12*8)
cfi_offset(%r13,JB_R13*8)
cfi_offset(%r14,JB_R14*8)
@@ -58,4 +54,4 @@ ENTRY(__longjmp)
movq %r8,%rsp
movq %r9,%rbp
jmpq *%rdx
-END (BP_SYM (__longjmp))
+END (__longjmp)