Skip to content
Snippets Groups Projects
Commit 5a14af5f authored by Hallvard Furuseth's avatar Hallvard Furuseth
Browse files

Memory leaks: Values from ldap_get_dn were not freed.

parent ede86e4d
No related branches found
No related tags found
No related merge requests found
......@@ -235,7 +235,10 @@ int quiet;
ldap_set_option(ld, LDAP_OPT_DEREF, &savederef);
return(NULL);
} else if (matches == 1) {
if (ldap_search_s(ld, ldap_get_dn(ld, ldap_first_entry(ld, res)), LDAP_SCOPE_BASE, "objectClass=*", read_attrs, FALSE, &res) != LDAP_SUCCESS) {
dn = ldap_get_dn(ld, ldap_first_entry(ld, res));
rc = ldap_search_s(ld, dn, LDAP_SCOPE_BASE, "objectClass=*", read_attrs, FALSE, &res);
Free(dn);
if (rc != LDAP_SUCCESS) {
int ld_errno = 0;
ldap_get_option(ld, LDAP_OPT_ERROR_NUMBER, &ld_errno);
if (ld_errno == LDAP_UNAVAILABLE)
......@@ -301,7 +304,10 @@ int quiet;
fflush(stdout);
fetch_buffer(response, sizeof(response), stdin);
if ((response[0] == 'n') || (response[0] == 'N'))
{
Free(dn);
return(NULL);
}
}
#ifdef DEBUG
if (debug & D_FIND) {
......@@ -320,7 +326,7 @@ int quiet;
if (ldap_search_s(ld, dn, LDAP_SCOPE_BASE, "objectClass=*", read_attrs, FALSE, &res) != LDAP_SUCCESS) {
ldap_perror(ld, "ldap_search_s");
ldap_msgfree(res);
return(NULL);
res = NULL;
}
Free(dn);
return(res);
......
......@@ -21,6 +21,7 @@
#include <lber.h>
#include <ldap.h>
#include "ud.h"
extern void Free();
extern struct entry Entry;
extern int verbose;
......@@ -497,6 +498,7 @@ mail_is_good:
}
tmp = ldap_get_dn(ld, elmp);
strcpy(buffer, tmp);
Free(tmp);
(void) ldap_msgfree(lmp);
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment