diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2020-01-31 04:17:26 -0800 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2020-02-15 22:15:03 +0100 |
commit | 98ad3fe82bd3e7e7f929dd1fa4ef3915426002c0 (patch) | |
tree | 90305d8bdb22f19188d925136cdd25b2d13f9b03 /crypto/rc4 | |
parent | 07980622e28746245a83ad9d011b6a4a32a1c2e0 (diff) |
x86_64: Add endbranch at function entries for Intel CET
To support Intel CET, all indirect branch targets must start with
endbranch. Here is a patch to add endbranch to function entries
in x86_64 assembly codes which are indirect branch targets as
discovered by running openssl testsuite on Intel CET machine and
visual inspection.
Verified with
$ CC="gcc -Wl,-z,cet-report=error" ./Configure shared linux-x86_64 -fcf-protection
$ make
$ make test
and
$ CC="gcc -mx32 -Wl,-z,cet-report=error" ./Configure shared linux-x32 -fcf-protection
$ make
$ make test # <<< passed with https://github.com/openssl/openssl/pull/10988
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10982)
Diffstat (limited to 'crypto/rc4')
-rwxr-xr-x | crypto/rc4/asm/rc4-x86_64.pl | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/crypto/rc4/asm/rc4-x86_64.pl b/crypto/rc4/asm/rc4-x86_64.pl index b86425e582..57d72a283a 100755 --- a/crypto/rc4/asm/rc4-x86_64.pl +++ b/crypto/rc4/asm/rc4-x86_64.pl @@ -142,6 +142,7 @@ $code=<<___; .align 16 RC4: .cfi_startproc + endbranch or $len,$len jne .Lentry ret @@ -457,6 +458,7 @@ $code.=<<___; .align 16 RC4_set_key: .cfi_startproc + endbranch lea 8($dat),$dat lea ($inp,$len),$inp neg $len @@ -531,6 +533,7 @@ RC4_set_key: .align 16 RC4_options: .cfi_startproc + endbranch lea .Lopts(%rip),%rax mov OPENSSL_ia32cap_P(%rip),%edx bt \$20,%edx |