diff options
author | Theo Buehler <tb@cvs.openbsd.org> | 2024-01-24 15:24:29 +0000 |
---|---|---|
committer | Theo Buehler <tb@cvs.openbsd.org> | 2024-01-24 15:24:29 +0000 |
commit | 3dee2e31d0d48fb3d7aab4917b155daa51330768 (patch) | |
tree | b0591f9e0cf3521d3570afc976a4d94bce8f5b0e /lib | |
parent | beac8bb4b884cc359b0f0b215ff455e5096f4be4 (diff) |
Avoid a four-byte overread in gcm_ghash_4bit_mmx() on i386
This is a variant of the same logic error fixed in ghash-x86_64.pl r1.6.
The code path is only reachable on machines without FXSR or PCLMUL.
ok jsing
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libcrypto/modes/asm/ghash-x86.pl | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libcrypto/modes/asm/ghash-x86.pl b/lib/libcrypto/modes/asm/ghash-x86.pl index 5e868a43ff2..47833582b61 100644 --- a/lib/libcrypto/modes/asm/ghash-x86.pl +++ b/lib/libcrypto/modes/asm/ghash-x86.pl @@ -714,7 +714,7 @@ sub mmx_loop() { } &mov (&LB($nlo),&LB($dat)); - &mov ($dat,&DWP(528+$j,"esp")) if (--$j%4==0); + &mov ($dat,&DWP(528+$j,"esp")) if (--$j%4==0 && $j>=0); &movd ($rem[0],$Zlo); &movz ($rem[1],&LB($rem[1])) if ($i>0); |