bn/asm/x86_64-mont.pl: fix for CVE-2016-7055 (Low severity).
authorAndy Polyakov <appro@openssl.org>
Sun, 6 Nov 2016 17:33:17 +0000 (18:33 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 10 Nov 2016 10:38:15 +0000 (10:38 +0000)
Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit 2fac86d9abeaa643677d1ffd0a139239fdf9406a)

crypto/bn/asm/x86_64-mont.pl

index 044fd7e..80492d8 100755 (executable)
@@ -1148,18 +1148,17 @@ $code.=<<___;
        mulx    2*8($aptr),%r15,%r13    # ...
        adox    -3*8($tptr),%r11
        adcx    %r15,%r12
-       adox    $zero,%r12
+       adox    -2*8($tptr),%r12
        adcx    $zero,%r13
+       adox    $zero,%r13
 
        mov     $bptr,8(%rsp)           # off-load &b[i]
-       .byte   0x67
        mov     $mi,%r15
        imulq   24(%rsp),$mi            # "t[0]"*n0
        xor     %ebp,%ebp               # xor   $zero,$zero     # cf=0, of=0
 
        mulx    3*8($aptr),%rax,%r14
         mov    $mi,%rdx
-       adox    -2*8($tptr),%r12
        adcx    %rax,%r13
        adox    -1*8($tptr),%r13
        adcx    $zero,%r14