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 @@ -984,8 +984,6 @@ PHP_FUNCTION(ldap_connect)
984984 RETURN_FALSE ;
985985 }
986986
987- object_init_ex (return_value , ldap_link_ce );
988- ld = Z_LDAP_LINK_P (return_value );
989987
990988 {
991989 int rc = LDAP_SUCCESS ;
@@ -1008,13 +1006,17 @@ PHP_FUNCTION(ldap_connect)
10081006
10091007 /* ensure all pending TLS options are applied in a new context */
10101008 if (ldap_set_option (NULL , LDAP_OPT_X_TLS_NEWCTX , & val ) != LDAP_OPT_SUCCESS ) {
1011- zval_ptr_dtor (return_value );
1009+ if (url != host ) {
1010+ efree (url );
1011+ }
10121012 php_error_docref (NULL , E_WARNING , "Could not create new security context" );
10131013 RETURN_FALSE ;
10141014 }
10151015 LDAPG (tls_newctx ) = false;
10161016 }
10171017#endif
1018+ object_init_ex (return_value , ldap_link_ce );
1019+ ld = Z_LDAP_LINK_P (return_value );
10181020
10191021#ifdef LDAP_API_FEATURE_X_OPENLDAP
10201022 /* ldap_init() is deprecated, use ldap_initialize() instead.
@@ -1027,6 +1029,9 @@ PHP_FUNCTION(ldap_connect)
10271029 ldap = ldap_init (host , port );
10281030 if (ldap == NULL ) {
10291031 zval_ptr_dtor (return_value );
1032+ if (url != host ) {
1033+ efree (url );
1034+ }
10301035 php_error_docref (NULL , E_WARNING , "Could not create session handle" );
10311036 RETURN_FALSE ;
10321037 }
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