patrickallaert                           Tue, 01 Sep 2009 08:42:10 +0000

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

Log:
Fixing #49424 (#48696): segfault while using ldap_search(), ldap_read(),...

Bugs: http://bugs.php.net/49424 (Assigned) ldap_search segfault Apache procees
      http://bugs.php.net/48696 (Closed) ldap_read() segfaults with invalid 
parameters
      
Changed paths:
    _U  php/php-src/branches/PHP_5_2/ext/ldap/
    U   php/php-src/branches/PHP_5_2/ext/ldap/ldap.c
    A + php/php-src/branches/PHP_5_2/ext/ldap/tests/bug48696.phpt
        (from php/php-src/trunk/ext/ldap/tests/bug48696.phpt:r282758)


Property changes on: php/php-src/branches/PHP_5_2/ext/ldap
___________________________________________________________________
Added: svn:mergeinfo
   + /php/php-src/branches/PHP_5_3/ext/ldap:284120
/php/php-src/trunk/ext/ldap:282758,284726

Modified: php/php-src/branches/PHP_5_2/ext/ldap/ldap.c
===================================================================
--- php/php-src/branches/PHP_5_2/ext/ldap/ldap.c        2009-09-01 05:41:43 UTC 
(rev 287935)
+++ php/php-src/branches/PHP_5_2/ext/ldap/ldap.c        2009-09-01 08:42:10 UTC 
(rev 287936)
@@ -687,7 +687,7 @@
        char *ldap_base_dn = NULL;
        char *ldap_filter = NULL;
        char **ldap_attrs = NULL;
-       ldap_linkdata *ld;
+       ldap_linkdata *ld = NULL;
        LDAPMessage *ldap_res;
        int ldap_attrsonly = 0;
        int ldap_sizelimit = -1;
@@ -903,8 +903,10 @@
        }

 cleanup:
-       // Restoring previous options
-       php_set_opts(ld->link, old_ldap_sizelimit, old_ldap_timelimit, 
old_ldap_deref, &ldap_sizelimit, &ldap_timelimit, &ldap_deref);
+       if (ld) {
+               /* Restoring previous options */
+               php_set_opts(ld->link, old_ldap_sizelimit, old_ldap_timelimit, 
old_ldap_deref, &ldap_sizelimit, &ldap_timelimit, &ldap_deref);
+       }
        if (ldap_attrs != NULL) {
                efree(ldap_attrs);
        }

Copied: php/php-src/branches/PHP_5_2/ext/ldap/tests/bug48696.phpt (from rev 
282758, php/php-src/trunk/ext/ldap/tests/bug48696.phpt)
===================================================================
--- php/php-src/branches/PHP_5_2/ext/ldap/tests/bug48696.phpt                   
        (rev 0)
+++ php/php-src/branches/PHP_5_2/ext/ldap/tests/bug48696.phpt   2009-09-01 
08:42:10 UTC (rev 287936)
@@ -0,0 +1,10 @@
+--TEST--
+Bug #48696 (ldap_read() segfaults with invalid parameters)
+--FILE--
+<?php
+
+ldap_read(1,1,1);
+
+?>
+--EXPECTF--
+Warning: ldap_read(): supplied argument is not a valid ldap link resource in 
%s on line %d

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

Reply via email to