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@openssl.org>
(cherry picked from commit 69567687b0)
This commit is contained in:
Andy Polyakov 2015-05-20 09:36:48 +02:00
parent 0945bfcb22
commit 0a59e2dc30

View File

@ -3226,11 +3226,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