[openssl] OpenSSL_1_1_1-stable update

bernd.edlinger at hotmail.de bernd.edlinger at hotmail.de
Wed Dec 18 13:28:57 UTC 2019


The branch OpenSSL_1_1_1-stable has been updated
       via  7540f7bdc271037267e08006ec32bb47a1ea427a (commit)
      from  d28ddc65cfb6fc66f916d095ea74dd9c2e5679ba (commit)


- Log -----------------------------------------------------------------
commit 7540f7bdc271037267e08006ec32bb47a1ea427a
Author: Bernd Edlinger <bernd.edlinger at hotmail.de>
Date:   Tue Dec 17 09:05:32 2019 +0100

    Fix unwind info for some trivial functions
    
    While stack unwinding works with gdb here, the
    function _Unwind_Backtrace gives up when something outside
    .cfi_startproc/.cfi_endproc is found in the call stack, like
    OPENSSL_cleanse, OPENSSL_atomic_add, OPENSSL_rdtsc, CRYPTO_memcmp
    and other trivial functions which don't save anything in the stack.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>
    Reviewed-by: Kurt Roeckx <kurt at roeckx.be>
    (Merged from https://github.com/openssl/openssl/pull/10635)
    
    (cherry picked from commit 8913378a552e470c66277c47b19699f20b84aa3b)

-----------------------------------------------------------------------

Summary of changes:
 crypto/x86_64cpuid.pl | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/crypto/x86_64cpuid.pl b/crypto/x86_64cpuid.pl
index 6423e803b7..b9d8f73222 100644
--- a/crypto/x86_64cpuid.pl
+++ b/crypto/x86_64cpuid.pl
@@ -39,6 +39,7 @@ print<<___;
 .type	OPENSSL_atomic_add,\@abi-omnipotent
 .align	16
 OPENSSL_atomic_add:
+.cfi_startproc
 	movl	($arg1),%eax
 .Lspin:	leaq	($arg2,%rax),%r8
 	.byte	0xf0		# lock
@@ -47,16 +48,19 @@ OPENSSL_atomic_add:
 	movl	%r8d,%eax
 	.byte	0x48,0x98	# cltq/cdqe
 	ret
+.cfi_endproc
 .size	OPENSSL_atomic_add,.-OPENSSL_atomic_add
 
 .globl	OPENSSL_rdtsc
 .type	OPENSSL_rdtsc,\@abi-omnipotent
 .align	16
 OPENSSL_rdtsc:
+.cfi_startproc
 	rdtsc
 	shl	\$32,%rdx
 	or	%rdx,%rax
 	ret
+.cfi_endproc
 .size	OPENSSL_rdtsc,.-OPENSSL_rdtsc
 
 .globl	OPENSSL_ia32_cpuid
@@ -232,6 +236,7 @@ OPENSSL_ia32_cpuid:
 .type   OPENSSL_cleanse,\@abi-omnipotent
 .align  16
 OPENSSL_cleanse:
+.cfi_startproc
 	xor	%rax,%rax
 	cmp	\$15,$arg2
 	jae	.Lot
@@ -261,12 +266,14 @@ OPENSSL_cleanse:
 	cmp	\$0,$arg2
 	jne	.Little
 	ret
+.cfi_endproc
 .size	OPENSSL_cleanse,.-OPENSSL_cleanse
 
 .globl  CRYPTO_memcmp
 .type   CRYPTO_memcmp,\@abi-omnipotent
 .align  16
 CRYPTO_memcmp:
+.cfi_startproc
 	xor	%rax,%rax
 	xor	%r10,%r10
 	cmp	\$0,$arg3
@@ -295,6 +302,7 @@ CRYPTO_memcmp:
 	shr	\$63,%rax
 .Lno_data:
 	ret
+.cfi_endproc
 .size	CRYPTO_memcmp,.-CRYPTO_memcmp
 ___
 
@@ -303,6 +311,7 @@ print<<___ if (!$win64);
 .type	OPENSSL_wipe_cpu,\@abi-omnipotent
 .align	16
 OPENSSL_wipe_cpu:
+.cfi_startproc
 	pxor	%xmm0,%xmm0
 	pxor	%xmm1,%xmm1
 	pxor	%xmm2,%xmm2
@@ -329,6 +338,7 @@ OPENSSL_wipe_cpu:
 	xorq	%r11,%r11
 	leaq	8(%rsp),%rax
 	ret
+.cfi_endproc
 .size	OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
 ___
 print<<___ if ($win64);
@@ -365,6 +375,7 @@ print<<___;
 .type	OPENSSL_instrument_bus,\@abi-omnipotent
 .align	16
 OPENSSL_instrument_bus:
+.cfi_startproc
 	mov	$arg1,$out	# tribute to Win64
 	mov	$arg2,$cnt
 	mov	$arg2,$max
@@ -391,12 +402,14 @@ OPENSSL_instrument_bus:
 
 	mov	$max,%rax
 	ret
+.cfi_endproc
 .size	OPENSSL_instrument_bus,.-OPENSSL_instrument_bus
 
 .globl	OPENSSL_instrument_bus2
 .type	OPENSSL_instrument_bus2,\@abi-omnipotent
 .align	16
 OPENSSL_instrument_bus2:
+.cfi_startproc
 	mov	$arg1,$out	# tribute to Win64
 	mov	$arg2,$cnt
 	mov	$arg3,$max
@@ -439,6 +452,7 @@ OPENSSL_instrument_bus2:
 	mov	$redzone(%rsp),%rax
 	sub	$cnt,%rax
 	ret
+.cfi_endproc
 .size	OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2
 ___
 }
@@ -450,6 +464,7 @@ print<<___;
 .type	OPENSSL_ia32_${rdop}_bytes,\@abi-omnipotent
 .align	16
 OPENSSL_ia32_${rdop}_bytes:
+.cfi_startproc
 	xor	%rax, %rax	# return value
 	cmp	\$0,$arg2
 	je	.Ldone_${rdop}_bytes
@@ -486,6 +501,7 @@ OPENSSL_ia32_${rdop}_bytes:
 .Ldone_${rdop}_bytes:
 	xor	%r10,%r10	# Clear sensitive data from register
 	ret
+.cfi_endproc
 .size	OPENSSL_ia32_${rdop}_bytes,.-OPENSSL_ia32_${rdop}_bytes
 ___
 }


More information about the openssl-commits mailing list