From: William A. Rowe Jr Date: Wed, 6 Jul 2005 22:25:37 +0000 (+0000) Subject: Wrap this type in a macro since it seems to be bouncing from X-Git-Tag: 2.1.7~45 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=622042c1614e274abcbaa0df3b75d6ecffc60304;p=apache Wrap this type in a macro since it seems to be bouncing from 0.9.7g to 0.9.7h in const'ness. PR: 34520 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@209530 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/ssl_scache_dbm.c b/modules/ssl/ssl_scache_dbm.c index aa345b5711..43cc0a6a4e 100644 --- a/modules/ssl/ssl_scache_dbm.c +++ b/modules/ssl/ssl_scache_dbm.c @@ -196,7 +196,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_DATUM_TYPE ucpData; int nData; time_t expiry; time_t now; @@ -237,13 +237,14 @@ 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((UCHAR *)ucpData, (char *)dbmval.dptr+sizeof(time_t), nData); memcpy(&expiry, dbmval.dptr, sizeof(time_t)); apr_dbm_close(dbm); diff --git a/modules/ssl/ssl_scache_shmcb.c b/modules/ssl/ssl_scache_shmcb.c index 45ca10002e..d4b499a199 100644 --- a/modules/ssl/ssl_scache_shmcb.c +++ b/modules/ssl/ssl_scache_shmcb.c @@ -1184,7 +1184,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_DATUM_TYPE ptr; time_t now; ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, @@ -1262,7 +1262,7 @@ static BOOL shmcb_remove_session_id( SHMCBIndex *idx; SHMCBHeader *header; unsigned int curr_pos, loop, count; - unsigned char *ptr; + MODSSL_D2I_DATUM_TYPE ptr; BOOL to_return = FALSE; ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, diff --git a/modules/ssl/ssl_toolkit_compat.h b/modules/ssl/ssl_toolkit_compat.h index 892bf52734..0b538e0faa 100644 --- a/modules/ssl/ssl_toolkit_compat.h +++ b/modules/ssl/ssl_toolkit_compat.h @@ -78,12 +78,18 @@ #define MODSSL_BIO_CB_ARG_TYPE const char #define MODSSL_CRYPTO_CB_ARG_TYPE const char #if (OPENSSL_VERSION_NUMBER < 0x00907000) -#define MODSSL_INFO_CB_ARG_TYPE SSL* +# define MODSSL_INFO_CB_ARG_TYPE SSL* #else -#define MODSSL_INFO_CB_ARG_TYPE const SSL* +# define MODSSL_INFO_CB_ARG_TYPE const SSL* #endif #define MODSSL_CLIENT_CERT_CB_ARG_TYPE X509 #define MODSSL_PCHAR_CAST +#if (OPENSSL_VERSION_NUMBER < 0x0090707f) +# define MODSSL_D2I_DATUM_TYPE unsigned char * +#else +# define MODSSL_D2I_DATUM_TYPE const unsigned char * +#endif + #define modssl_X509_verify_cert X509_verify_cert @@ -146,6 +152,7 @@ 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_DATUM_TYPE unsigned char * typedef int (modssl_read_bio_cb_fn)(char*,int,int);