aarch64: Add missing LR validation in 'vpaes_cbc_encrypt'

There is an obvious bug there: upon entry to 'vpaes_cbc_encrypt'
LR may get signed. However, on the 'cbc_abort' path the LR is
not going to be unsigned before 'ret' is executed.

Found by manual code inspection.

Co-authored-by: Russ Butler <russ.butler@arm.com>

Change-Id: I646cdfaee28db59aafbbd412d4bb6ba022eff15b
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/49605
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
grpc-202302
Tamas Petz 4 years ago committed by Boringssl LUCI CQ
parent 66e61c577d
commit dedd23e592
  1. 2
      crypto/fipsmodule/aes/asm/vpaes-armv8.pl

@ -1153,8 +1153,8 @@ vpaes_cbc_encrypt:
st1 {v0.16b}, [$ivec] // write ivec
ldp x29,x30,[sp],#16
AARCH64_VALIDATE_LINK_REGISTER
.Lcbc_abort:
AARCH64_VALIDATE_LINK_REGISTER
ret
.size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt

Loading…
Cancel
Save