File tree Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Expand file tree Collapse file tree 2 files changed +32
-3
lines changed Original file line number Diff line number Diff line change @@ -986,8 +986,6 @@ PHP_FUNCTION(ldap_connect)
986986		RETURN_FALSE ;
987987	}
988988
989- 	object_init_ex (return_value , ldap_link_ce );
990- 	ld  =  Z_LDAP_LINK_P (return_value );
991989
992990	{
993991		int  rc  =  LDAP_SUCCESS ;
@@ -1010,13 +1008,17 @@ PHP_FUNCTION(ldap_connect)
10101008
10111009			/* ensure all pending TLS options are applied in a new context */ 
10121010			if  (ldap_set_option (NULL , LDAP_OPT_X_TLS_NEWCTX , & val ) !=  LDAP_OPT_SUCCESS ) {
1013- 				zval_ptr_dtor (return_value );
1011+ 				if  (url  !=  host ) {
1012+ 					efree (url );
1013+ 				}
10141014				php_error_docref (NULL , E_WARNING , "Could not create new security context" );
10151015				RETURN_FALSE ;
10161016			}
10171017			LDAPG (tls_newctx ) =  false;
10181018		}
10191019#endif 
1020+ 		object_init_ex (return_value , ldap_link_ce );
1021+ 		ld  =  Z_LDAP_LINK_P (return_value );
10201022
10211023#ifdef  LDAP_API_FEATURE_X_OPENLDAP 
10221024		/* ldap_init() is deprecated, use ldap_initialize() instead. 
@@ -1029,6 +1031,9 @@ PHP_FUNCTION(ldap_connect)
10291031		ldap  =  ldap_init (host , port );
10301032		if  (ldap  ==  NULL ) {
10311033			zval_ptr_dtor (return_value );
1034+ 			if  (url  !=  host ) {
1035+ 				efree (url );
1036+ 			}
10321037			php_error_docref (NULL , E_WARNING , "Could not create session handle" );
10331038			RETURN_FALSE ;
10341039		}
Original file line number Diff line number Diff line change 1+ --TEST--
2+ ldap_connect() - Connection errors
3+ --EXTENSIONS--
4+ ldap
5+ --INI--
6+ error_reporting=E_ALL & ~E_DEPRECATED
7+ --FILE--
8+ <?php 
9+ require  "connect.inc " ;
10+ try  {
11+ 	ldap_connect ("nope:// $ host " , 65536 );
12+ } catch  (\ValueError   $ e ) {
13+ 	echo  $ e ->getMessage (), PHP_EOL ;
14+ }
15+ 
16+ try  {
17+ 	ldap_connect ("nope:// $ host " , 0 );
18+ } catch  (\ValueError   $ e ) {
19+ 	echo  $ e ->getMessage (), PHP_EOL ;
20+ }
21+ ?> 
22+ --EXPECT--
23+ ldap_connect(): Argument #2 ($port) must be between 1 and 65535
24+ ldap_connect(): Argument #2 ($port) must be between 1 and 65535
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments