summaryrefslogtreecommitdiff
path: root/lib/libcrypto/bn/bn.h
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2011-11-03 02:34:34 +0000
committerDamien Miller <djm@cvs.openbsd.org>2011-11-03 02:34:34 +0000
commit83e0d2b6dc9f5d1e1d9da1d5fb2b3e4a1b95ed29 (patch)
treeb4be7ab0261dff4bf6e721d276b191619415c6e4 /lib/libcrypto/bn/bn.h
parentce9ed2f66babb3442b71c8a7b580758c546d433a (diff)
openssl-1.0.0e: resolve conflicts
Diffstat (limited to 'lib/libcrypto/bn/bn.h')
-rw-r--r--lib/libcrypto/bn/bn.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/libcrypto/bn/bn.h b/lib/libcrypto/bn/bn.h
index e484b7fc116..a0bc47837dc 100644
--- a/lib/libcrypto/bn/bn.h
+++ b/lib/libcrypto/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