SEGV in AES_cbc_encrypt in aes-x86_64 assembler module.

PR: 1801
Submitted by: Huang Ying
This commit is contained in:
Andy Polyakov 2008-12-17 14:11:30 +00:00
parent 2e6a7b3efc
commit 6786f52ada

View File

@ -1965,19 +1965,16 @@ AES_cbc_encrypt:
jmp .Lcbc_exit jmp .Lcbc_exit
.align 4 .align 4
.Lcbc_slow_enc_tail: .Lcbc_slow_enc_tail:
cmp $inp,$out
je .Lcbc_slow_enc_in_place
mov %r10,%rcx mov %r10,%rcx
mov $inp,%rsi mov $inp,%rsi
mov $out,%rdi mov $out,%rdi
.long 0x9066A4F3 # rep movsb .long 0x9066A4F3 # rep movsb
.Lcbc_slow_enc_in_place:
mov \$16,%rcx # zero tail mov \$16,%rcx # zero tail
sub %r10,%rcx sub %r10,%rcx
xor %rax,%rax xor %rax,%rax
.long 0x9066AAF3 # rep stosb .long 0x9066AAF3 # rep stosb
mov $out,$inp # this is not a mistake! mov $out,$inp # this is not a mistake!
movq \$16,$_len # len=16 mov \$16,%r10 # len=16
jmp .Lcbc_slow_enc_loop # one more spin... jmp .Lcbc_slow_enc_loop # one more spin...
#--------------------------- SLOW DECRYPT ---------------------------# #--------------------------- SLOW DECRYPT ---------------------------#
.align 16 .align 16