Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 111617 Details for
Bug 133467
PHP 5.1.* ldap functions kill apache 2
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
php-5.1.6-ldap-api-fix.patch
php-5.1.6-ldap-api-fix.patch (text/plain), 4.18 KB, created by
Doug Goldstein (RETIRED)
on 2007-02-28 19:53:37 UTC
(
hide
)
Description:
php-5.1.6-ldap-api-fix.patch
Filename:
MIME Type:
Creator:
Doug Goldstein (RETIRED)
Created:
2007-02-28 19:53:37 UTC
Size:
4.18 KB
patch
obsolete
>diff -Nur php-5.1.6/ext/ldap/ldap.c php-5.1.6-ldap-api/ext/ldap/ldap.c >--- php-5.1.6/ext/ldap/ldap.c 2006-01-01 07:50:08.000000000 -0500 >+++ php-5.1.6-ldap-api/ext/ldap/ldap.c 2007-02-28 11:04:05.000000000 -0500 >@@ -116,7 +116,8 @@ > PHP_FE(ldap_first_attribute, third_arg_force_ref) > PHP_FE(ldap_next_attribute, third_arg_force_ref) > PHP_FE(ldap_get_attributes, NULL) >- PHP_FE(ldap_get_values, NULL) >+ PHP_FALIAS(ldap_get_values, ldap_get_values_len, NULL) >+/* PHP_FE(ldap_get_values, NULL) */ > PHP_FE(ldap_get_values_len, NULL) > PHP_FE(ldap_get_dn, NULL) > PHP_FE(ldap_explode_dn, NULL) >@@ -1033,7 +1034,7 @@ > BerElement *ber; > char *attribute; > size_t attr_len; >- char **ldap_value; >+ struct berval **ldap_value; > char *dn; > > if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &link, &result) == FAILURE) { >@@ -1064,16 +1065,16 @@ > attribute = ldap_first_attribute(ldap, ldap_result_entry, &ber); > > while (attribute != NULL) { >- ldap_value = ldap_get_values(ldap, ldap_result_entry, attribute); >- num_values = ldap_count_values(ldap_value); >+ ldap_value = ldap_get_values_len(ldap, ldap_result_entry, attribute); >+ num_values = ldap_count_values_len(ldap_value); > > MAKE_STD_ZVAL(tmp2); > array_init(tmp2); > add_assoc_long(tmp2, "count", num_values); > for (i = 0; i < num_values; i++) { >- add_index_string(tmp2, i, ldap_value[i], 1); >+ add_index_stringl(tmp2, i, ldap_value[i]->bv_val, ldap_value[i]->bv_len, 1); > } >- ldap_value_free(ldap_value); >+ ldap_value_free_len(ldap_value); > > attr_len = strlen(attribute); > zend_hash_update(Z_ARRVAL_P(tmp1), php_strtolower(attribute, attr_len), attr_len+1, (void *) &tmp2, sizeof(zval *), NULL); >@@ -1180,7 +1181,7 @@ > ldap_linkdata *ld; > ldap_resultentry *resultentry; > char *attribute; >- char **ldap_value; >+ struct berval **ldap_value; > int i, num_values, num_attrib; > BerElement *ber; > >@@ -1196,16 +1197,16 @@ > > attribute = ldap_first_attribute(ld->link, resultentry->data, &ber); > while (attribute != NULL) { >- ldap_value = ldap_get_values(ld->link, resultentry->data, attribute); >- num_values = ldap_count_values(ldap_value); >+ ldap_value = ldap_get_values_len(ld->link, resultentry->data, attribute); >+ num_values = ldap_count_values_len(ldap_value); > > MAKE_STD_ZVAL(tmp); > array_init(tmp); > add_assoc_long(tmp, "count", num_values); > for (i = 0; i < num_values; i++) { >- add_index_string(tmp, i, ldap_value[i], 1); >+ add_index_stringl(tmp, i, ldap_value[i]->bv_val, ldap_value[i]->bv_len, 1); > } >- ldap_value_free(ldap_value); >+ ldap_value_free_len(ldap_value); > > zend_hash_update(Z_ARRVAL_P(return_value), attribute, strlen(attribute)+1, (void *) &tmp, sizeof(zval *), NULL); > add_index_string(return_value, num_attrib, attribute, 1); >@@ -1226,46 +1227,6 @@ > } > /* }}} */ > >-/* {{{ proto array ldap_get_values(resource link, resource result_entry, string attribute) >- Get all values from a result entry */ >-PHP_FUNCTION(ldap_get_values) >-{ >- zval **link, **result_entry, **attr; >- ldap_linkdata *ld; >- ldap_resultentry *resultentry; >- char *attribute; >- char **ldap_value; >- int i, num_values; >- >- if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &link, &result_entry, &attr) == FAILURE) { >- WRONG_PARAM_COUNT; >- } >- >- ZEND_FETCH_RESOURCE(ld, ldap_linkdata *, link, -1, "ldap link", le_link); >- ZEND_FETCH_RESOURCE(resultentry, ldap_resultentry *, result_entry, -1, "ldap result entry", le_result_entry); >- >- convert_to_string_ex(attr); >- attribute = Z_STRVAL_PP(attr); >- >- if ((ldap_value = ldap_get_values(ld->link, resultentry->data, attribute)) == NULL) { >- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot get the value(s) of attribute %s", ldap_err2string(_get_lderrno(ld->link))); >- RETURN_FALSE; >- } >- >- num_values = ldap_count_values(ldap_value); >- >- array_init(return_value); >- >- for (i = 0; i<num_values; i++) { >- add_next_index_string(return_value, ldap_value[i], 1); >- } >- >- add_assoc_long(return_value, "count", num_values); >- ldap_value_free(ldap_value); >- >-} >-/* }}} */ >- > /* {{{ proto array ldap_get_values_len(resource link, resource result_entry, string attribute) > Get all values with lengths from a result entry */ > PHP_FUNCTION(ldap_get_values_len)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 133467
:
87068
| 111617