aboutsummaryrefslogtreecommitdiff
path: root/openssl/crypto/bn/bn.h
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2011-09-30 08:40:25 +0200
committermarha <marha@users.sourceforge.net>2011-09-30 08:40:25 +0200
commit60adbfdea1ee754341d64454274e7aa83bae8971 (patch)
tree1b56329c88f1a881b0e7297bb4283cfbb7e39c97 /openssl/crypto/bn/bn.h
parentaf72dcd109d7610b96863035541250997c7a172e (diff)
downloadvcxsrv-60adbfdea1ee754341d64454274e7aa83bae8971.tar.gz
vcxsrv-60adbfdea1ee754341d64454274e7aa83bae8971.tar.bz2
vcxsrv-60adbfdea1ee754341d64454274e7aa83bae8971.zip
Upgraded to openssl-1.0.0e
Diffstat (limited to 'openssl/crypto/bn/bn.h')
-rw-r--r--openssl/crypto/bn/bn.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/openssl/crypto/bn/bn.h b/openssl/crypto/bn/bn.h
index e484b7fc1..a0bc47837 100644
--- a/openssl/crypto/bn/bn.h
+++ b/openssl/crypto/bn/bn.h
@@ -253,6 +253,24 @@ extern "C" {
#define BN_HEX_FMT2 "%08X"
#endif
+/* 2011-02-22 SMS.
+ * In various places, a size_t variable or a type cast to size_t was
+ * used to perform integer-only operations on pointers. This failed on
+ * VMS with 64-bit pointers (CC /POINTER_SIZE = 64) because size_t is
+ * still only 32 bits. What's needed in these cases is an integer type
+ * with the same size as a pointer, which size_t is not certain to be.
+ * The only fix here is VMS-specific.
+ */
+#if defined(OPENSSL_SYS_VMS)
+# if __INITIAL_POINTER_SIZE == 64
+# define PTR_SIZE_INT long long
+# else /* __INITIAL_POINTER_SIZE == 64 */
+# define PTR_SIZE_INT int
+# endif /* __INITIAL_POINTER_SIZE == 64 [else] */
+#else /* defined(OPENSSL_SYS_VMS) */
+# define PTR_SIZE_INT size_t
+#endif /* defined(OPENSSL_SYS_VMS) [else] */
+
#define BN_DEFAULT_BITS 1280
#define BN_FLG_MALLOCED 0x01