67 lines
1.7 KiB
Diff
67 lines
1.7 KiB
Diff
--- crypto/openssl/crypto/bn/asm/x86_64-mont5.pl.orig
|
|
+++ crypto/openssl/crypto/bn/asm/x86_64-mont5.pl
|
|
@@ -3090,11 +3090,19 @@
|
|
|
|
.align 32
|
|
.Lsqrx8x_break:
|
|
- sub 16+8(%rsp),%r8 # consume last carry
|
|
+ xor $zero,$zero
|
|
+ sub 16+8(%rsp),%rbx # mov 16(%rsp),%cf
|
|
+ adcx $zero,%r8
|
|
mov 24+8(%rsp),$carry # initial $tptr, borrow $carry
|
|
+ adcx $zero,%r9
|
|
mov 0*8($aptr),%rdx # a[8], modulo-scheduled
|
|
- xor %ebp,%ebp # xor $zero,$zero
|
|
+ adc \$0,%r10
|
|
mov %r8,0*8($tptr)
|
|
+ adc \$0,%r11
|
|
+ adc \$0,%r12
|
|
+ adc \$0,%r13
|
|
+ adc \$0,%r14
|
|
+ adc \$0,%r15
|
|
cmp $carry,$tptr # cf=0, of=0
|
|
je .Lsqrx8x_outer_loop
|
|
|
|
--- crypto/openssl/crypto/x509v3/v3_addr.c.orig
|
|
+++ crypto/openssl/crypto/x509v3/v3_addr.c
|
|
@@ -130,10 +130,12 @@
|
|
*/
|
|
unsigned int v3_addr_get_afi(const IPAddressFamily *f)
|
|
{
|
|
- return ((f != NULL &&
|
|
- f->addressFamily != NULL && f->addressFamily->data != NULL)
|
|
- ? ((f->addressFamily->data[0] << 8) | (f->addressFamily->data[1]))
|
|
- : 0);
|
|
+ if (f == NULL
|
|
+ || f->addressFamily == NULL
|
|
+ || f->addressFamily->data == NULL
|
|
+ || f->addressFamily->length < 2)
|
|
+ return 0;
|
|
+ return (f->addressFamily->data[0] << 8) | f->addressFamily->data[1];
|
|
}
|
|
|
|
/*
|
|
--- secure/lib/libcrypto/amd64/x86_64-mont5.S.orig
|
|
+++ secure/lib/libcrypto/amd64/x86_64-mont5.S
|
|
@@ -3077,11 +3077,19 @@
|
|
|
|
.align 32
|
|
.Lsqrx8x_break:
|
|
- subq 16+8(%rsp),%r8
|
|
+ xorq %rbp,%rbp
|
|
+ subq 16+8(%rsp),%rbx
|
|
+ adcxq %rbp,%r8
|
|
movq 24+8(%rsp),%rcx
|
|
+ adcxq %rbp,%r9
|
|
movq 0(%rsi),%rdx
|
|
- xorl %ebp,%ebp
|
|
+ adcq $0,%r10
|
|
movq %r8,0(%rdi)
|
|
+ adcq $0,%r11
|
|
+ adcq $0,%r12
|
|
+ adcq $0,%r13
|
|
+ adcq $0,%r14
|
|
+ adcq $0,%r15
|
|
cmpq %rcx,%rdi
|
|
je .Lsqrx8x_outer_loop
|
|
|