summaryrefslogtreecommitdiff
path: root/ext/ldap
diff options
context:
space:
mode:
authorDavid Caldwell <david@galvanix.com>2017-05-25 00:41:12 +0000
committerDavid Caldwell <david@galvanix.com>2017-05-25 00:47:11 +0000
commitd51b8f915fbbb008ce3b8c33e062b436b8f9c507 (patch)
tree48279faffa54a6f0c916505dbdf131d7ebdaa75b /ext/ldap
parent872e43d6e55e4af84681b259198ee688287cd40d (diff)
downloadphp-git-d51b8f915fbbb008ce3b8c33e062b436b8f9c507.tar.gz
ext/ldap: Allow default host from ldap.conf to work.
This fixes an regression introduced in e7af0fe1eb89e40671e86a588aa1b78607b85461. Previously, calling ldap_connect() with no parameters would pass NULL to ldap_init(), which causes it to use the default host specified in /etc/ldap/ldap.conf (on Ubuntu). When the code changed to use ldap_initialize(), it initialized a uri, even if there were no parameters passed to ldap_connect(). Because of this, there's no way to pass a NULL into ldap_initialize(), making it impossible to use the default uri from ldap.conf. This commit bypasses the uri creation when there is no host argument, passing on a NULL to ldap_initialize() which restores the old PHP 5.5 behavior.
Diffstat (limited to 'ext/ldap')
-rw-r--r--ext/ldap/ldap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/ldap/ldap.c b/ext/ldap/ldap.c
index 109508bbbe..cec20da3cc 100644
--- a/ext/ldap/ldap.c
+++ b/ext/ldap/ldap.c
@@ -366,7 +366,7 @@ PHP_FUNCTION(ldap_connect)
{
int rc = LDAP_SUCCESS;
char *url = host;
- if (!ldap_is_ldap_url(url)) {
+ if (url && !ldap_is_ldap_url(url)) {
int urllen = hostlen + sizeof( "ldap://:65535" );
if (port <= 0 || port > 65535) {
@@ -376,7 +376,7 @@ PHP_FUNCTION(ldap_connect)
}
url = emalloc(urllen);
- snprintf( url, urllen, "ldap://%s:%ld", host ? host : "", port );
+ snprintf( url, urllen, "ldap://%s:%ld", host, port );
}
#ifdef LDAP_API_FEATURE_X_OPENLDAP