Commit 9ae5b6522d for openssl.org

commit 9ae5b6522d0ebd3cd3b5e76d6f4cf8e1ea9336c0
Author: Jan Damborsky <dambi@tio.cz>
Date:   Tue Apr 14 08:43:35 2026 +0200

    Fixes AES optimisations for Fujitsu M10 cause SEGV #29085

    Fixes off-by-one error in AES optimisations for Fujitsu Sparc CPUs.

    Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
    Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
    Reviewed-by: Paul Dale <paul.dale@oracle.com>
    MergeDate: Fri Apr 17 10:46:01 2026
    (Merged from https://github.com/openssl/openssl/pull/30814)

diff --git a/crypto/aes/asm/aesfx-sparcv9.pl b/crypto/aes/asm/aesfx-sparcv9.pl
index 34d1fff3d8..8a307e1f60 100644
--- a/crypto/aes/asm/aesfx-sparcv9.pl
+++ b/crypto/aes/asm/aesfx-sparcv9.pl
@@ -479,11 +479,16 @@ aes_fx_cbc_encrypt:
 	ldd		[$end + 24], %f12

 	movrz		$len, 0, $inc
+
+	brz,pn		$len, .Lcbc_enc_skip_load
+	nop
+
 	fmovd		$intail, $in0
 	ldd		[$inp - 8], $in1	! load next input block
 	ldda		[$inp]0x82, $intail	! non-faulting load
 	add		$inp, $inc, $inp	! inp+=16

+.Lcbc_enc_skip_load:
 	fmovd		%f0, %f4
 	faesencx	%f2, %f6, %f0
 	faesencx	%f4, %f8, %f2
@@ -694,11 +699,16 @@ aes_fx_cbc_encrypt:
 	fmovd		$in1, $iv1

 	movrz		$len, 0, $inc
+
+	brz,pn		$len, .Lcbc_dec_skip_load
+	nop
+
 	fmovd		$intail, $in0
 	ldd		[$inp - 8], $in1	! load next input block
 	ldda		[$inp]0x82, $intail	! non-faulting load
 	add		$inp, $inc, $inp	! inp+=16

+.Lcbc_dec_skip_load:
 	fmovd		%f0, %f4
 	faesdecx	%f2, %f10, %f0
 	faesdecx	%f4, %f12, %f2
@@ -953,11 +963,16 @@ aes_fx_ctr32_encrypt_blocks:
 	fxor		$in1, $rllo, %f8

 	movrz		$len, 0, $inc
+
+	brz,pn		$len, .Lctr32_enc_skip_load
+	nop
+
 	fmovd		$intail, $in0
 	ldd		[$inp - 8], $in1	! load next input block
 	ldda		[$inp]0x82, $intail	! non-faulting load
 	add		$inp, $inc, $inp	! inp+=16

+.Lctr32_enc_skip_load:
 	fmovd		%f0, %f4
 	faesencx	%f2, %f10, %f0
 	faesencx	%f4, %f12, %f2