diff options
author | Andy Polyakov <appro@openssl.org> | 2011-06-28 13:31:58 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2011-06-28 13:31:58 +0000 |
commit | 0ec55604c0aa0574fbb04bef9e9617d9ea980568 (patch) | |
tree | 8c604563c2d8dc89bb2c50a76ed4d222af805179 /crypto/cryptlib.h | |
parent | 500007c9ed9bdd12db519476fc5aa072fc2f474c (diff) |
Expand OPENSSL_ia32cap_P to 64 bits. It might appear controversial, because
such operation can be considered as breaking binary compatibility. However!
OPNESSL_ia32cap_P is accessed by application through pointer returned by
OPENSSL_ia32cap_loc() and such change of *internal* OPENSSL_ia32cap_P
declaration is possible specifically on little-endian platforms, such as
x86[_64] ones in question. In addition, if 32-bit application calls
OPENSSL_ia32cap_loc(), it clears upper half of capability vector maintaining
the illusion that it's still 32 bits wide.
Diffstat (limited to 'crypto/cryptlib.h')
-rw-r--r-- | crypto/cryptlib.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/cryptlib.h b/crypto/cryptlib.h index fc249c57f3..1761f6b668 100644 --- a/crypto/cryptlib.h +++ b/crypto/cryptlib.h @@ -99,7 +99,7 @@ extern "C" { #define HEX_SIZE(type) (sizeof(type)*2) void OPENSSL_cpuid_setup(void); -extern unsigned long OPENSSL_ia32cap_P; +extern unsigned int OPENSSL_ia32cap_P[]; void OPENSSL_showfatal(const char *,...); void *OPENSSL_stderr(void); extern int OPENSSL_NONPIC_relocated; |