]> granicus.if.org Git - php/commitdiff
@- Fixed bug in ldap_get_values_len() which makes it NULL-safe. (Jani)
authorfoobar <sniper@php.net>
Fri, 28 Jul 2000 00:09:33 +0000 (00:09 +0000)
committerfoobar <sniper@php.net>
Fri, 28 Jul 2000 00:09:33 +0000 (00:09 +0000)
@  Bug-report and fix submitted by Michel Alexeline <alexel@dr15.cnrs.fr>
# Plus I added missing ldap_value_free_len().

ext/ldap/ldap.c

index 8451c637f9bf6280dbf7d364c7f05d865eb31880..4962f0a21048a029d4096bbe444697a35a1e54e2 100644 (file)
@@ -957,14 +957,14 @@ PHP_FUNCTION(ldap_get_values)
        }
        
        add_assoc_long(return_value, "count", num_values);
-
        ldap_value_free(ldap_value);
+
 }
 /* }}} */
 
 
 /* {{{ proto array ldap_get_values_len(int link, int result, string attribute)
-   Get the lengths for all values from a result entry */
+   Get all values with lengths from a result entry */
 PHP_FUNCTION(ldap_get_values_len)
 {
        pval **link, **result_entry, **attr;
@@ -974,8 +974,7 @@ PHP_FUNCTION(ldap_get_values_len)
        struct berval **ldap_value_len;
        int i, num_values;
        
-       if (ZEND_NUM_ARGS() != 3 ||
-           zend_get_parameters_ex(3, &link, &result_entry, &attr) == FAILURE) {
+       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &link, &result_entry, &attr) == FAILURE) {
                WRONG_PARAM_COUNT;
        }
        
@@ -1007,10 +1006,12 @@ PHP_FUNCTION(ldap_get_values_len)
        }
        
        for (i=0; i<num_values; i++) {
-               add_next_index_string(return_value, ldap_value_len[i]->bv_val, 1);
+               add_next_index_stringl(return_value, ldap_value_len[i]->bv_val, ldap_value_len[i]->bv_len, 1);
        }
        
        add_assoc_long(return_value, "count", num_values);
+       ldap_value_free_len(ldap_value_len);
+
 }
 /* }}} */