From 9da1e1125b9b08136cab780fee04a0e23d9f7ef8 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Sun, 12 Dec 2010 03:00:20 +0000 Subject: [PATCH] ITS#6653 --- CHANGES | 1 + libraries/libldap/url.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index ed677b9887..f170c2e5ee 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,7 @@ OpenLDAP 2.4.24 Engineering Fixed liblber to not close invalid sockets (ITS#6585) Fixed libldap dnssrv port format specifier (ITS#6644) Fixed libldap sasl partial write handling (ITS#6639) + Fixed libldap url parsing with NULL host (ITS#6653) Fixed ldapsearch segfault with deref (ITS#6638) Fixed slapd acl parsing overflow (ITS#6611) Fixed slapd modify to return actual error (ITS#6581) diff --git a/libraries/libldap/url.c b/libraries/libldap/url.c index 2c4094cb9c..4e641a3706 100644 --- a/libraries/libldap/url.c +++ b/libraries/libldap/url.c @@ -1425,6 +1425,7 @@ ldap_url_list2hosts (LDAPURLDesc *ludlist) /* figure out how big the string is */ size = 1; /* nul-term */ for (ludp = ludlist; ludp != NULL; ludp = ludp->lud_next) { + if ( ludp->lud_host == NULL ) continue; size += strlen(ludp->lud_host) + 1; /* host and space */ if (strchr(ludp->lud_host, ':')) /* will add [ ] below */ size += 2; @@ -1437,6 +1438,7 @@ ldap_url_list2hosts (LDAPURLDesc *ludlist) p = s; for (ludp = ludlist; ludp != NULL; ludp = ludp->lud_next) { + if ( ludp->lud_host == NULL ) continue; if (strchr(ludp->lud_host, ':')) { p += sprintf(p, "[%s]", ludp->lud_host); } else { @@ -1449,7 +1451,7 @@ ldap_url_list2hosts (LDAPURLDesc *ludlist) } if (p != s) p--; /* nuke that extra space */ - *p = 0; + *p = '\0'; return s; } -- 2.39.5