|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-06-04 08:51 UTC] patrickallaert@php.net
Description:
------------
Memory leaks found when using ldap_get_entries() which returns NULL
Reproduce code:
---------------
<?php
ldap_get_entries(
$link,
ldap_search(
$link,
"dc=my-domain,dc=com",
"(o=unexisting-domain)"
)
);
?>
Actual result:
--------------
[Thu Jun 4 10:36:15 2009] Script: '/usr/src/php-5.3-
cvs/ext/ldap/tests/ldap_get_entries_variation.php'
/usr/src/php-5.3-cvs/Zend/zend_hash.c(247) : Freeing 0x12D749F8 (41
bytes), script=/usr/src/php-5.3-
cvs/ext/ldap/tests/ldap_get_entries_variation.php
[Thu Jun 4 10:36:15 2009] Script: '/usr/src/php-5.3-
cvs/ext/ldap/tests/ldap_get_entries_variation.php'
/usr/src/php-5.3-cvs/ext/ldap/ldap.c(964) : Freeing 0x12D75B14 (44
bytes), script=/usr/src/php-5.3-
cvs/ext/ldap/tests/ldap_get_entries_variation.php
/usr/src/php-5.3-cvs/Zend/zend_API.c(936) : Actual location (location
was relayed)
Last leak repeated 1 time
[Thu Jun 4 10:36:15 2009] Script: '/usr/src/php-5.3-
cvs/ext/ldap/tests/ldap_get_entries_variation.php'
/usr/src/php-5.3-cvs/Zend/zend_API.c(1096) : Freeing 0x12D7699C (20
bytes), script=/usr/src/php-5.3-
cvs/ext/ldap/tests/ldap_get_entries_variation.php
=== Total 4 memory leaks detected ===
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 05:00:02 2025 UTC |
The patch below corrects this problem. Ok to commit this in HEAD followed by branches with MFH? Index: ext/ldap/ldap.c =================================================================== RCS file: /repository/php-src/ext/ldap/ldap.c,v retrieving revision 1.161.2.3.2.11.2.25 diff -u -r1.161.2.3.2.11.2.25 ldap.c --- ext/ldap/ldap.c 21 Apr 2009 18:08:34 -0000 1.161.2.3.2.11.2.25 +++ ext/ldap/ldap.c 4 Jun 2009 08:53:25 -0000 @@ -961,9 +961,6 @@ 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(); } @@ -974,6 +971,9 @@ RETURN_FALSE; } + array_init(return_value); + add_assoc_long(return_value, "count", num_entries); + while (ldap_result_entry != NULL) { MAKE_STD_ZVAL(tmp1);