summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--UPGRADING3
-rw-r--r--ext/curl/interface.c44
3 files changed, 6 insertions, 43 deletions
diff --git a/NEWS b/NEWS
index 04f89c409a..6c22dd9d74 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,8 @@ PHP NEWS
- Curl:
. Fixed bug #71144 (Segmentation fault when using cURL with ZTS).
(maroszek at gmx dot net)
+ . Fixed bug #71929 (Certification information (CERTINFO) data parsing error).
+ (Pierrick)
- Date:
. Fixed bug #66836 (DateTime::createFromFormat 'U' with pre 1970 dates fails
diff --git a/UPGRADING b/UPGRADING
index dbf65015de..353ffa73ad 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -218,6 +218,9 @@ PHP 5.6 UPGRADE NOTES
. CURLOPT_KRBLEVEL
. CURLOPT_KRB4LEVEL
+ curl_getinfo($ch, CURLINFO_CERTINFO) returns certificate Subject and Issuer
+ as a string (PHP >= 5.6.25)
+
- Strings:
substr_compare() now allows $length to be zero.
pack() and unpack() now support 64-bit format specifiers: q, Q, J and P.
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index dc4a97197e..c7112a091a 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -1833,38 +1833,6 @@ static void alloc_curl_handle(php_curl **ch)
/* }}} */
#if LIBCURL_VERSION_NUM >= 0x071301 /* Available since 7.19.1 */
-/* {{{ split_certinfo
- */
-static void split_certinfo(char *string, zval *hash)
-{
- char *org = estrdup(string);
- char *s = org;
- char *split;
-
- if(org) {
- do {
- char *key;
- char *val;
- char *tmp;
-
- split = strstr(s, "; ");
- if(split)
- *split = '\0';
-
- key = s;
- tmp = memchr(key, '=', 64);
- if(tmp) {
- *tmp = '\0';
- val = tmp+1;
- add_assoc_string(hash, key, val, 1);
- }
- s = split+2;
- } while(split);
- efree(org);
- }
-}
-/* }}} */
-
/* {{{ create_certinfo
*/
static void create_certinfo(struct curl_certinfo *ci, zval *listcode TSRMLS_DC)
@@ -1888,17 +1856,7 @@ static void create_certinfo(struct curl_certinfo *ci, zval *listcode TSRMLS_DC)
if(tmp) {
*tmp = '\0';
len = strlen(s);
- if(!strcmp(s, "Subject") || !strcmp(s, "Issuer")) {
- zval *hash;
-
- MAKE_STD_ZVAL(hash);
- array_init(hash);
-
- split_certinfo(&slist->data[len+1], hash);
- add_assoc_zval(certhash, s, hash);
- } else {
- add_assoc_string(certhash, s, &slist->data[len+1], 1);
- }
+ add_assoc_string(certhash, s, &slist->data[len+1], 1);
} else {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not extract hash key from certificate info");
}