svn commit: samba r16121 - branches/SAMBA_3_0/source/passdb trunk/source/passdb

gd at samba.org gd at samba.org
Fri Jun 9 12:55:08 GMT 2006


Author: gd
Date: 2006-06-09 12:55:07 +0000 (Fri, 09 Jun 2006)
New Revision: 16121

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=16121

Log:
Fix a eDir related memory leak.

Guenther

Modified:
   branches/SAMBA_3_0/source/passdb/pdb_ldap.c
   trunk/source/passdb/pdb_ldap.c


Changeset:
Modified: branches/SAMBA_3_0/source/passdb/pdb_ldap.c
===================================================================
--- branches/SAMBA_3_0/source/passdb/pdb_ldap.c	2006-06-09 12:43:34 UTC (rev 16120)
+++ branches/SAMBA_3_0/source/passdb/pdb_ldap.c	2006-06-09 12:55:07 UTC (rev 16121)
@@ -730,14 +730,21 @@
 			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));
 		}

Modified: trunk/source/passdb/pdb_ldap.c
===================================================================
--- trunk/source/passdb/pdb_ldap.c	2006-06-09 12:43:34 UTC (rev 16120)
+++ trunk/source/passdb/pdb_ldap.c	2006-06-09 12:55:07 UTC (rev 16121)
@@ -730,14 +730,21 @@
 			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));
 		}



More information about the samba-cvs mailing list