From 004bfa4709ef522b05b35f1548954db380303827 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 9 Jun 2006 14:59:04 +0000 Subject: r16124: catch a couple of fixes from Guenther --- WHATSNEW.txt | 3 +++ source/include/smbldap.h | 1 + source/lib/smbldap.c | 2 ++ source/passdb/pdb_ldap.c | 11 +++++++++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/WHATSNEW.txt b/WHATSNEW.txt index e65dbfa75eb..d37a40e82e8 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -65,6 +65,9 @@ o Guenther Deschner * Correct "net ads changetrustpw" to use the sAMAccountName. * Fix winbindd in ADS domains by removing code using the UPN and rely upon the sAMAccountName. + * Fix a eDir related memory leak. + * Don't try to add the sn attribute twice to an LDAP + inetOrgPerson + samSamAccount entry. o Aleksey Fedoseev diff --git a/source/include/smbldap.h b/source/include/smbldap.h index 6cfde13f4a9..ae54e66b369 100644 --- a/source/include/smbldap.h +++ b/source/include/smbldap.h @@ -101,6 +101,7 @@ struct smbldap_state; #define LDAP_ATTR_MOD_TIMESTAMP 41 #define LDAP_ATTR_LOGON_HOURS 42 #define LDAP_ATTR_TRUST_PASSWD_FLAGS 43 +#define LDAP_ATTR_SN 44 typedef struct _attrib_map_entry { diff --git a/source/lib/smbldap.c b/source/lib/smbldap.c index dfa6782afef..5b18f4e3113 100644 --- a/source/lib/smbldap.c +++ b/source/lib/smbldap.c @@ -52,6 +52,7 @@ ATTRIB_MAP_ENTRY attrib_map_v22[] = { { LDAP_ATTR_LOGOFF_TIME, "logoffTime" }, { LDAP_ATTR_KICKOFF_TIME, "kickoffTime" }, { LDAP_ATTR_CN, "cn" }, + { LDAP_ATTR_SN, "sn" }, { LDAP_ATTR_DISPLAY_NAME, "displayName" }, { LDAP_ATTR_HOME_PATH, "smbHome" }, { LDAP_ATTR_HOME_DRIVE, "homeDrive" }, @@ -106,6 +107,7 @@ ATTRIB_MAP_ENTRY attrib_map_v30[] = { { LDAP_ATTR_LOGOFF_TIME, "sambaLogoffTime" }, { LDAP_ATTR_KICKOFF_TIME, "sambaKickoffTime" }, { LDAP_ATTR_CN, "cn" }, + { LDAP_ATTR_SN, "sn" }, { LDAP_ATTR_DISPLAY_NAME, "displayName" }, { LDAP_ATTR_HOME_DRIVE, "sambaHomeDrive" }, { LDAP_ATTR_HOME_PATH, "sambaHomePath" }, diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c index fbc6378f685..79c1eda459c 100644 --- a/source/passdb/pdb_ldap.c +++ b/source/passdb/pdb_ldap.c @@ -730,14 +730,21 @@ static BOOL init_sam_from_ldap(struct ldapsam_privates *ldap_state, pwd_len = sizeof(clear_text_pw); if (pdb_nds_get_password(ldap_state->smbldap_state, user_dn, &pwd_len, clear_text_pw) == LDAP_SUCCESS) { nt_lm_owf_gen(clear_text_pw, smbntpwd, smblmpwd); - if (!pdb_set_lanman_passwd(sampass, smblmpwd, PDB_SET)) + if (!pdb_set_lanman_passwd(sampass, smblmpwd, PDB_SET)) { + SAFE_FREE(user_dn); return False; + } ZERO_STRUCT(smblmpwd); - if (!pdb_set_nt_passwd(sampass, smbntpwd, PDB_SET)) + if (!pdb_set_nt_passwd(sampass, smbntpwd, PDB_SET)) { + SAFE_FREE(user_dn); return False; + } ZERO_STRUCT(smbntpwd); use_samba_attrs = False; } + + SAFE_FREE(user_dn); + } else { DEBUG(0, ("init_sam_from_ldap: failed to get user_dn for '%s'\n", username)); } -- cgit v1.2.1