jani                                     Wed, 18 Nov 2009 17:44:58 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=290923

Log:
- Fixed bug #50185 (ldap_get_entries() return false instead of an empty array 
when there is no error).
# This is also revert of bad patch to bug #48469 and fixes it properly.

Bugs: http://bugs.php.net/50185 (Open) ldap_get_entries() return false instead 
of an empty array when there is no error
      http://bugs.php.net/48469 (Closed) ldap_get_entries() memory leaks when 
used on a search yielding no results
      
Changed paths:
    U   php/php-src/branches/PHP_5_2/NEWS
    U   php/php-src/branches/PHP_5_2/ext/ldap/ldap.c
    U   php/php-src/branches/PHP_5_3/NEWS
    U   php/php-src/branches/PHP_5_3/ext/ldap/ldap.c
    U   php/php-src/trunk/ext/ldap/ldap.c

Modified: php/php-src/branches/PHP_5_2/NEWS
===================================================================
--- php/php-src/branches/PHP_5_2/NEWS   2009-11-18 17:35:00 UTC (rev 290922)
+++ php/php-src/branches/PHP_5_2/NEWS   2009-11-18 17:44:58 UTC (rev 290923)
@@ -5,6 +5,8 @@

 - Made it possible to disable post_max_size (Rasmus)

+- Fixed bug #50185 (ldap_get_entries() return false instead of an empty array
+  when there is no error). (Jani)
 - Fixed bug #50174 (Incorrectly matched docComment). (Felipe)
 - Fixed bug #50158 (FILTER_VALIDATE_EMAIL fails with valid addresses
   containing = or ?). (Pierrick)

Modified: php/php-src/branches/PHP_5_2/ext/ldap/ldap.c
===================================================================
--- php/php-src/branches/PHP_5_2/ext/ldap/ldap.c        2009-11-18 17:35:00 UTC 
(rev 290922)
+++ php/php-src/branches/PHP_5_2/ext/ldap/ldap.c        2009-11-18 17:44:58 UTC 
(rev 290923)
@@ -1061,17 +1061,21 @@
        ldap = ld->link;
        num_entries = ldap_count_entries(ldap, ldap_result);

-       if (num_entries == 0) return;
-       num_entries = 0;
+       array_init(return_value);
+       add_assoc_long(return_value, "count", num_entries);
+
+       if (num_entries == 0) {
+               return;
+       }

        ldap_result_entry = ldap_first_entry(ldap, ldap_result);
-       if (ldap_result_entry == NULL) RETURN_FALSE;
+       if (ldap_result_entry == NULL) {
+               zval_dtor(return_value);
+               RETURN_FALSE;
+       }

-       array_init(return_value);
-       add_assoc_long(return_value, "count", num_entries);
-
+       num_entries = 0;
        while (ldap_result_entry != NULL) {
-
                MAKE_STD_ZVAL(tmp1);
                array_init(tmp1);


Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS   2009-11-18 17:35:00 UTC (rev 290922)
+++ php/php-src/branches/PHP_5_3/NEWS   2009-11-18 17:44:58 UTC (rev 290923)
@@ -23,6 +23,8 @@

 - Fixed bug #50212 (crash by ldap_get_option() with LDAP_OPT_NETWORK_TIMEOUT).
   (Ilia, shigeru_kitazaki at cybozu dot co dot jp)
+- Fixed bug #50185 (ldap_get_entries() return false instead of an empty array
+  when there is no error). (Jani)
 - Fixed bug #50140 (With default compilation option, php symbols are
   unresolved for nsapi). (Uwe Schindler)
 - Fixed bug #50174 (Incorrectly matched docComment). (Felipe)

Modified: php/php-src/branches/PHP_5_3/ext/ldap/ldap.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/ldap/ldap.c        2009-11-18 17:35:00 UTC 
(rev 290922)
+++ php/php-src/branches/PHP_5_3/ext/ldap/ldap.c        2009-11-18 17:44:58 UTC 
(rev 290923)
@@ -936,21 +936,21 @@
        ldap = ld->link;
        num_entries = ldap_count_entries(ldap, ldap_result);

+       array_init(return_value);
+       add_assoc_long(return_value, "count", num_entries);
+
        if (num_entries == 0) {
-               RETURN_NULL();
+               return;
        }
-       num_entries = 0;

        ldap_result_entry = ldap_first_entry(ldap, ldap_result);
        if (ldap_result_entry == NULL) {
+               zval_dtor(return_value);
                RETURN_FALSE;
        }

-       array_init(return_value);
-       add_assoc_long(return_value, "count", num_entries);
-
+       num_entries = 0;
        while (ldap_result_entry != NULL) {
-
                MAKE_STD_ZVAL(tmp1);
                array_init(tmp1);


Modified: php/php-src/trunk/ext/ldap/ldap.c
===================================================================
--- php/php-src/trunk/ext/ldap/ldap.c   2009-11-18 17:35:00 UTC (rev 290922)
+++ php/php-src/trunk/ext/ldap/ldap.c   2009-11-18 17:44:58 UTC (rev 290923)
@@ -957,21 +957,21 @@
        ldap = ld->link;
        num_entries = ldap_count_entries(ldap, ldap_result);

+       array_init(return_value);
+       add_assoc_long(return_value, "count", num_entries);
+
        if (num_entries == 0) {
-               RETURN_NULL();
+               return;
        }
-       num_entries = 0;

        ldap_result_entry = ldap_first_entry(ldap, ldap_result);
        if (ldap_result_entry == NULL) {
+               zval_dtor(return_value);
                RETURN_FALSE;
        }

-       array_init(return_value);
-       add_assoc_long(return_value, "count", num_entries);
-
+       num_entries = 0;
        while (ldap_result_entry != NULL) {
-
                MAKE_STD_ZVAL(tmp1);
                array_init(tmp1);


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to