[packages] php4: fix OpenSSL v1.0.0 fallout...
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 21 Feb 2011 19:44:17 +0000 (19:44 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 21 Feb 2011 19:44:17 +0000 (19:44 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@25651 3c298f89-4303-0410-b956-a3cf2f4a3e73

lang/php4/patches/110-openssl-1.0.0-compat.patch [new file with mode: 0644]

diff --git a/lang/php4/patches/110-openssl-1.0.0-compat.patch b/lang/php4/patches/110-openssl-1.0.0-compat.patch
new file mode 100644 (file)
index 0000000..87ca851
--- /dev/null
@@ -0,0 +1,72 @@
+--- a/ext/openssl/openssl.c
++++ b/ext/openssl/openssl.c
+@@ -47,6 +47,13 @@
+ #define DEBUG_SMIME   0
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++#define OPENSSL_D2I_X509_CAST d2i_of_void *
++#else
++#define OPENSSL_D2I_X509_CAST char *(*)()
++#define LHASH_OF(x)           LHASH
++#endif
++
+ static unsigned char arg2_force_ref[] =
+                        { 2, BYREF_NONE, BYREF_FORCE };
+ static unsigned char arg2and3_force_ref[] =
+@@ -179,8 +186,8 @@ inline static int php_openssl_safe_mode_
+ static char default_ssl_conf_filename[MAXPATHLEN];
+ struct php_x509_request {
+-      LHASH * global_config;  /* Global SSL config */
+-      LHASH * req_config;             /* SSL config for this request */
++      LHASH_OF(CONF_VALUE) * global_config;   /* Global SSL config */
++      LHASH_OF(CONF_VALUE) * req_config;              /* SSL config for this request */
+       const EVP_MD * md_alg;
+       const EVP_MD * digest;
+       char    * section_name,
+@@ -340,7 +347,7 @@ static inline int php_openssl_config_che
+               const char * section_label,
+               const char * config_filename,
+               const char * section,
+-              LHASH * config TSRMLS_DC)
++              LHASH_OF(CONF_VALUE) * config TSRMLS_DC)
+ {
+       X509V3_CTX ctx;
+       
+@@ -720,7 +727,7 @@ static X509 * php_openssl_x509_from_zval
+               if (in == NULL)
+                       return NULL;
+-              cert = (X509 *) PEM_ASN1_read_bio((char *(*)())d2i_X509,
++              cert = (X509 *) PEM_ASN1_read_bio((OPENSSL_D2I_X509_CAST)d2i_X509,
+                               PEM_STRING_X509, in,
+                               NULL, NULL, NULL);
+               BIO_free(in);
+@@ -1859,7 +1866,7 @@ static int php_openssl_is_private_key(EV
+               case EVP_PKEY_RSA2:
+                       assert(pkey->pkey.rsa != NULL);
+-                      if (NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)
++                      if (NULL == pkey->pkey.rsa || NULL == pkey->pkey.rsa->p || NULL == pkey->pkey.rsa->q)
+                               return 0;
+                       break;
+ #endif
+@@ -1871,7 +1878,7 @@ static int php_openssl_is_private_key(EV
+               case EVP_PKEY_DSA4:
+                       assert(pkey->pkey.dsa != NULL);
+-                      if (NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key)
++                      if (NULL == pkey->pkey.dsa || NULL == pkey->pkey.dsa->p || NULL == pkey->pkey.dsa->q || NULL == pkey->pkey.dsa->priv_key)
+                               return 0;
+                       break;
+ #endif
+@@ -1879,7 +1886,7 @@ static int php_openssl_is_private_key(EV
+               case EVP_PKEY_DH:
+                       assert(pkey->pkey.dh != NULL);
+-                      if (NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key)
++                      if (NULL == pkey->pkey.dh || NULL == pkey->pkey.dh->p || NULL == pkey->pkey.dh->priv_key)
+                               return 0;
+                       break;
+ #endif