[openssl-commits] [openssl] master update

Andy Polyakov appro at openssl.org
Sun May 24 19:31:57 UTC 2015


The branch master has been updated
       via  69567687b0b7ed67831c17a010f4d46dfd059aef (commit)
      from  86e5d1e32b2d702a5fc777e612cd746e790098ef (commit)


- Log -----------------------------------------------------------------
commit 69567687b0b7ed67831c17a010f4d46dfd059aef
Author: Andy Polyakov <appro at openssl.org>
Date:   Wed May 20 09:36:48 2015 +0200

    bn/asm/x86_64-mont5.pl: fix valgrind error.
    
    bn_get_bits5 was overstepping array boundary by 1 byte. It was exclusively
    read overstep and data could not have been used. The only potential problem
    would be if array happens to end on the very edge of last accesible page.
    
    Reviewed-by: Richard Levitte <levitte at openssl.org>

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

Summary of changes:
 crypto/bn/asm/x86_64-mont5.pl | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/crypto/bn/asm/x86_64-mont5.pl b/crypto/bn/asm/x86_64-mont5.pl
index 69e81bf..aa96d43 100755
--- a/crypto/bn/asm/x86_64-mont5.pl
+++ b/crypto/bn/asm/x86_64-mont5.pl
@@ -3231,11 +3231,16 @@ $code.=<<___;
 .type	bn_get_bits5,\@abi-omnipotent
 .align	16
 bn_get_bits5:
-	mov	$inp,%r10
+	lea	0($inp),%r10
+	lea	1($inp),%r11
 	mov	$num,%ecx
-	shr	\$3,$num
-	movzw	(%r10,$num),%eax
-	and	\$7,%ecx
+	shr	\$4,$num
+	and	\$15,%ecx
+	lea	-8(%ecx),%eax
+	cmp	\$11,%ecx
+	cmova	%r11,%r10
+	cmova	%eax,%ecx
+	movzw	(%r10,$num,2),%eax
 	shrl	%cl,%eax
 	and	\$31,%eax
 	ret


More information about the openssl-commits mailing list