1 --- a/ext/openssl/openssl.c
2 +++ b/ext/openssl/openssl.c
7 +#if OPENSSL_VERSION_NUMBER >= 0x10000000L
8 +#define OPENSSL_D2I_X509_CAST d2i_of_void *
10 +#define OPENSSL_D2I_X509_CAST char *(*)()
11 +#define LHASH_OF(x) LHASH
14 static unsigned char arg2_force_ref[] =
15 { 2, BYREF_NONE, BYREF_FORCE };
16 static unsigned char arg2and3_force_ref[] =
17 @@ -179,8 +186,8 @@ inline static int php_openssl_safe_mode_
18 static char default_ssl_conf_filename[MAXPATHLEN];
20 struct php_x509_request {
21 - LHASH * global_config; /* Global SSL config */
22 - LHASH * req_config; /* SSL config for this request */
23 + LHASH_OF(CONF_VALUE) * global_config; /* Global SSL config */
24 + LHASH_OF(CONF_VALUE) * req_config; /* SSL config for this request */
25 const EVP_MD * md_alg;
26 const EVP_MD * digest;
28 @@ -340,7 +347,7 @@ static inline int php_openssl_config_che
29 const char * section_label,
30 const char * config_filename,
32 - LHASH * config TSRMLS_DC)
33 + LHASH_OF(CONF_VALUE) * config TSRMLS_DC)
37 @@ -720,7 +727,7 @@ static X509 * php_openssl_x509_from_zval
41 - cert = (X509 *) PEM_ASN1_read_bio((char *(*)())d2i_X509,
42 + cert = (X509 *) PEM_ASN1_read_bio((OPENSSL_D2I_X509_CAST)d2i_X509,
46 @@ -1859,7 +1866,7 @@ static int php_openssl_is_private_key(EV
48 assert(pkey->pkey.rsa != NULL);
50 - if (NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)
51 + if (NULL == pkey->pkey.rsa || NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)
55 @@ -1871,7 +1878,7 @@ static int php_openssl_is_private_key(EV
57 assert(pkey->pkey.dsa != NULL);
59 - if (NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key)
60 + if (NULL == pkey->pkey.dsa || NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key)
64 @@ -1879,7 +1886,7 @@ static int php_openssl_is_private_key(EV
66 assert(pkey->pkey.dh != NULL);
68 - if (NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key)
69 + if (NULL == pkey->pkey.dh || NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key)