Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 99e9733

Browse filesBrowse files
bug #47547 [Ldap] Do not run ldap_set_option on failed connection (tatankat)
This PR was squashed before being merged into the 4.4 branch. Discussion ---------- [Ldap] Do not run ldap_set_option on failed connection | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | License | MIT ldap_set_option should only be called on null (first time setOption is run) or on an LDAP\Connection instance. When ldap_connect fails, it returns a boolean. ldap_set_option fails on this, which results in an early TypeError instead of the LdapException with the real issue: 'Could not connect to Ldap server'. So, the result of ldap_connect should be checked earlier. Commits ------- 8f4f2b1 [Ldap] Do not run ldap_set_option on failed connection
2 parents 9fd0eef + 8f4f2b1 commit 99e9733
Copy full SHA for 99e9733

File tree

1 file changed

+5
-5
lines changed
Filter options

1 file changed

+5
-5
lines changed

‎src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php
+5-5Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,18 +159,18 @@ private function connect()
159159
}
160160
}
161161

162-
$this->connection = ldap_connect($this->config['connection_string']);
162+
if (false === $connection = ldap_connect($this->config['connection_string'])) {
163+
throw new LdapException('Invalid connection string: '.$this->config['connection_string']);
164+
} else {
165+
$this->connection = $connection;
166+
}
163167

164168
foreach ($this->config['options'] as $name => $value) {
165169
if (!\in_array(ConnectionOptions::getOption($name), self::PRECONNECT_OPTIONS, true)) {
166170
$this->setOption($name, $value);
167171
}
168172
}
169173

170-
if (false === $this->connection) {
171-
throw new LdapException('Could not connect to Ldap server: '.ldap_error($this->connection));
172-
}
173-
174174
if ('tls' === $this->config['encryption'] && false === @ldap_start_tls($this->connection)) {
175175
throw new LdapException('Could not initiate TLS connection: '.ldap_error($this->connection));
176176
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.