summaryrefslogtreecommitdiffstats
path: root/crypto/cryptlib.h
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2011-06-28 13:31:58 +0000
committerAndy Polyakov <appro@openssl.org>2011-06-28 13:31:58 +0000
commit0ec55604c0aa0574fbb04bef9e9617d9ea980568 (patch)
tree8c604563c2d8dc89bb2c50a76ed4d222af805179 /crypto/cryptlib.h
parent500007c9ed9bdd12db519476fc5aa072fc2f474c (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.h2
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;