about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-30 21:29:27 -0700
committerUlrich Drepper <drepper@redhat.com>2009-07-30 21:29:27 -0700
commit8e80581787d2342824d9b70d238e646326776c31 (patch)
tree53e341e5fe0581004a0826d5c99c6ab6897a4285
parent07df80996944b95a238be755eb4957a83a5e4762 (diff)
downloadglibc-8e80581787d2342824d9b70d238e646326776c31.tar.gz
glibc-8e80581787d2342824d9b70d238e646326776c31.tar.xz
glibc-8e80581787d2342824d9b70d238e646326776c31.zip
Change code a bit to correct CFI.
-rw-r--r--sysdeps/x86_64/____longjmp_chk.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/sysdeps/x86_64/____longjmp_chk.S b/sysdeps/x86_64/____longjmp_chk.S
index 23aa0cb775..80e4aff36d 100644
--- a/sysdeps/x86_64/____longjmp_chk.S
+++ b/sysdeps/x86_64/____longjmp_chk.S
@@ -74,6 +74,8 @@ ENTRY(____longjmp_chk)
 	syscall
 	testl	%eax, %eax
 	movl	$0, %eax
+	leaq	24(%rsp), %rsp
+	cfi_adjust_cfa_offset(-24)
 	jne	.Lok
 	movl	8(%rsp), %eax
 	andl	$1, %eax
@@ -125,7 +127,7 @@ ENTRY(____longjmp_chk)
 
 .Lfail:	xchgq	%r8, %rsp
 	/* We want the stack trace to show that of the caller.  */
-	cfi_def_cfa(%rsp, 32)
+	cfi_def_cfa(%rsp, 8)
 	cfi_restore(%rsp)
 	cfi_register(%rbp, %r9)
 	cfi_restore(%rip)