Mercurial > illumos > illumos-gate
changeset 3762:f995324130e9
6500684 memory leak in libsldap:setup_next_search()
author | rm88369 |
---|---|
date | Mon, 05 Mar 2007 02:22:57 -0800 |
parents | f5abe2a41b3e |
children | fb3428ef36ce |
files | usr/src/lib/libsldap/common/ns_reads.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/lib/libsldap/common/ns_reads.c Sun Mar 04 22:14:52 2007 -0800 +++ b/usr/src/lib/libsldap/common/ns_reads.c Mon Mar 05 02:22:57 2007 -0800 @@ -1459,6 +1459,8 @@ cookie->err_rc = NS_LDAP_INVALID_PARAM; return (-1); } else { + if (cookie->filter) + free(cookie->filter); cookie->filter = strdup(cookie->i_filter); if (cookie->filter == NULL) { cookie->err_rc = NS_LDAP_MEMORY; @@ -1466,6 +1468,8 @@ } } } else { + if (cookie->filter) + free(cookie->filter); cookie->filter = strdup(filter); free(filter); if (cookie->filter == NULL) { @@ -1517,6 +1521,8 @@ } str = ((char **)param)[0]; baselen += strlen(str)+1; + if (cookie->basedn) + free(cookie->basedn); cookie->basedn = (char *)malloc(baselen); if (cookie->basedn == NULL) { cookie->err_rc = NS_LDAP_MEMORY; @@ -1526,6 +1532,8 @@ (void) strcat(cookie->basedn, str); (void) __ns_ldap_freeParam(¶m); } else { + if (cookie->basedn) + free(cookie->basedn); cookie->basedn = strdup(dptr->basedn); } return (0);