]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Resolve 0.9.6/0.9.7/0.9.8 OpenSSL const discrepancies
authorWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 8 Jul 2005 15:55:51 +0000 (15:55 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 8 Jul 2005 15:55:51 +0000 (15:55 +0000)
Reviewed by: jorton, bnichols, wrowe

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x@209825 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_engine_init.c
modules/ssl/ssl_scache_dbm.c
modules/ssl/ssl_scache_shmcb.c
modules/ssl/ssl_toolkit_compat.h

index 7da4e96a223037ab5232923147ca498b3aba7a41..131abf635e46265fbef799539970c58a7c083932 100644 (file)
@@ -705,7 +705,7 @@ static int ssl_server_import_cert(server_rec *s,
 {
     SSLModConfigRec *mc = myModConfig(s);
     ssl_asn1_t *asn1;
-    unsigned char *ptr;
+    MODSSL_D2I_X509_CONST unsigned char *ptr;
     const char *type = ssl_asn1_keystr(idx);
     X509 *cert;
 
@@ -743,7 +743,7 @@ static int ssl_server_import_key(server_rec *s,
 {
     SSLModConfigRec *mc = myModConfig(s);
     ssl_asn1_t *asn1;
-    unsigned char *ptr;
+    MODSSL_D2I_PrivateKey_CONST unsigned char *ptr;
     const char *type = ssl_asn1_keystr(idx);
     int pkey_type = (idx == SSL_AIDX_RSA) ? EVP_PKEY_RSA : EVP_PKEY_DSA;
     EVP_PKEY *pkey;
index 81f555ac99823dd9fb2a79de80ad52ac6b7bdab9..9e5632e9ea4f08010983592dcb9363abe06a6e17 100644 (file)
@@ -193,7 +193,7 @@ SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *s, UCHAR *id, int idlen)
     apr_datum_t dbmkey;
     apr_datum_t dbmval;
     SSL_SESSION *sess = NULL;
-    UCHAR *ucpData;
+    MODSSL_D2I_SSL_SESSION_CONST unsigned char *ucpData;
     int nData;
     time_t expiry;
     time_t now;
@@ -234,13 +234,15 @@ SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *s, UCHAR *id, int idlen)
 
     /* parse resulting data */
     nData = dbmval.dsize-sizeof(time_t);
-    ucpData = (UCHAR *)malloc(nData);
+    ucpData = malloc(nData);
     if (ucpData == NULL) {
         apr_dbm_close(dbm);
         ssl_mutex_off(s);
         return NULL;
     }
-    memcpy(ucpData, (char *)dbmval.dptr+sizeof(time_t), nData);
+    /* Cast needed, ucpData may be const */
+    memcpy((unsigned char *)ucpData, 
+           (char *)dbmval.dptr + sizeof(time_t), nData);
     memcpy(&expiry, dbmval.dptr, sizeof(time_t));
 
     apr_dbm_close(dbm);
index 377821c7e4a1713d811f1c4f9cf6d102207492e0..946cb9df9aa256b302555c7983292983ac221ac3 100644 (file)
@@ -1203,7 +1203,7 @@ static SSL_SESSION *shmcb_lookup_session_id(
     SHMCBHeader *header;
     SSL_SESSION *pSession = NULL;
     unsigned int curr_pos, loop, count;
-    unsigned char *ptr;
+    MODSSL_D2I_SSL_SESSION_CONST unsigned char *ptr;
     time_t now;
 
     ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
@@ -1281,7 +1281,7 @@ static BOOL shmcb_remove_session_id(
     SHMCBIndex *idx;
     SHMCBHeader *header;
     unsigned int curr_pos, loop, count;
-    unsigned char *ptr;
+    MODSSL_D2I_SSL_SESSION_CONST unsigned char *ptr;
     BOOL to_return = FALSE;
 
     ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
index 33f88e61c99851df1e0ba1d94003536215eae7ba..d20f331539144250fe29f68b3189f6c352a29813 100644 (file)
 #define MODSSL_CLIENT_CERT_CB_ARG_TYPE X509
 #define MODSSL_PCHAR_CAST
 
+/* ...shifting sands of openssl... */
+#if (OPENSSL_VERSION_NUMBER >= 0x0090707f)
+# define MODSSL_D2I_SSL_SESSION_CONST    const
+#else
+# define MODSSL_D2I_SSL_SESSION_CONST
+#endif
+
+#if (OPENSSL_VERSION_NUMBER >= 0x00908000)
+# define MODSSL_D2I_PrivateKey_CONST const
+# define MODSSL_D2I_X509_CONST const
+#else
+# define MODSSL_D2I_PrivateKey_CONST
+# define MODSSL_D2I_X509_CONST
+#endif
+
 #define modssl_X509_verify_cert X509_verify_cert
 
 typedef int (modssl_read_bio_cb_fn)(char*,int,int,void*);
@@ -123,6 +138,9 @@ typedef int (modssl_read_bio_cb_fn)(char*,int,int,void*);
 #define MODSSL_INFO_CB_ARG_TYPE SSL*
 #define MODSSL_CLIENT_CERT_CB_ARG_TYPE void
 #define MODSSL_PCHAR_CAST (char *)
+#define MODSSL_D2I_SSL_SESSION_CONST
+#define MODSSL_D2I_PrivateKey_CONST
+#define MODSSL_D2I_X509_CONST
 
 typedef int (modssl_read_bio_cb_fn)(char*,int,int);