summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2007-11-14 20:18:53 +0000
committerNoriko Hosoi <nhosoi@redhat.com>2007-11-14 20:18:53 +0000
commit7c58411ef851a5c8a10dde57f4d2eeee076f15c1 (patch)
tree31522093056b5b677e63f44c8ba0672699fdecc3
parentb0b81ec8ce6496d205ddc02b0c26aac19b4af828 (diff)
Resolves: #383141
Summary: listenhost: hostname associated with multiple addresses 1) parentheses were needed around *addr, which should have been evaluated before the array. 2) fixed a small memory leak.
-rw-r--r--ldap/servers/slapd/daemon.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ldap/servers/slapd/daemon.c b/ldap/servers/slapd/daemon.c
index 714f32ee..8bdd6521 100644
--- a/ldap/servers/slapd/daemon.c
+++ b/ldap/servers/slapd/daemon.c
@@ -2870,11 +2870,11 @@ slapd_listenhost2addr(const char *listenhost, PRNetAddr ***addr)
slapi_ch_free ((void**)&netaddr);
}
*addr = (PRNetAddr **)slapi_ch_calloc(2, sizeof (PRNetAddr *));
- *addr[0] = netaddr;
+ (*addr)[0] = netaddr;
} else if (PR_SUCCESS == PR_StringToNetAddr(listenhost, netaddr)) {
/* PR_StringNetAddr newer than NSPR v4.6.2 supports both IPv4&v6 */;
*addr = (PRNetAddr **)slapi_ch_calloc(2, sizeof (PRNetAddr *));
- *addr[0] = netaddr;
+ (*addr)[0] = netaddr;
} else {
PRAddrInfo *infop = PR_GetAddrInfoByName( listenhost,
PR_AF_UNSPEC, (PR_AI_ADDRCONFIG|PR_AI_NOCANONNAME) );
@@ -2901,9 +2901,10 @@ slapd_listenhost2addr(const char *listenhost, PRNetAddr ***addr)
for ( i = 0; i < addrcnt; i++ ) {
iter = PR_EnumerateAddrInfo( iter, infop, 0, netaddr );
if ( NULL == iter ) {
+ slapi_ch_free((void **)&netaddr); /* not used */
break;
}
- *addr[i] = netaddr;
+ (*addr)[i] = netaddr;
netaddr = (PRNetAddr *)slapi_ch_calloc(1, sizeof(PRNetAddr));
}
}