Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv2709
Modified Files:
daemon.c
Log Message:
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.
Index: daemon.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/daemon.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- daemon.c 18 Oct 2007 00:08:34 -0000 1.17
+++ daemon.c 14 Nov 2007 20:18:53 -0000 1.18
@@ -2870,11 +2870,11 @@
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 @@
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));
}
}
Show replies by date