From: Scott MacVicar Date: Sun, 29 Mar 2009 23:32:34 +0000 (+0000) Subject: MFH Fix bug #47828 - Converting to UTF-8 can sometimes fail, check error codes and... X-Git-Tag: php-5.3.0RC2~257 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=04566e106aa5d3865c88e9b361875a22bd5512aa;p=php MFH Fix bug #47828 - Converting to UTF-8 can sometimes fail, check error codes and avoid segfault. --- diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index 23557b092d..8c82e76370 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -575,7 +575,9 @@ static void add_assoc_name_entry(zval * val, char * key, X509_NAME * name, int s str = X509_NAME_ENTRY_get_data(ne); if (ASN1_STRING_type(str) != V_ASN1_UTF8STRING) { to_add_len = ASN1_STRING_to_UTF8(&to_add, str); - add_next_index_stringl(subentries, (char *)to_add, to_add_len, 1); + if (to_add_len != -1) { + add_next_index_stringl(subentries, (char *)to_add, to_add_len, 1); + } } else { to_add = ASN1_STRING_data(str); to_add_len = ASN1_STRING_length(str); @@ -591,7 +593,7 @@ static void add_assoc_name_entry(zval * val, char * key, X509_NAME * name, int s } else { zval_dtor(subentries); FREE_ZVAL(subentries); - if (obj_cnt && str) { + if (obj_cnt && str && to_add_len > -1) { add_assoc_stringl(subitem, sname, (char *)to_add, to_add_len, 1); } }