svn commit: samba r4861 - in trunk/source/passdb: .

jerry at samba.org jerry at samba.org
Wed Jan 19 22:53:01 GMT 2005


Author: jerry
Date: 2005-01-19 22:53:01 +0000 (Wed, 19 Jan 2005)
New Revision: 4861

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

Log:
svn merge -r4856:4860 svn+ssh://svn.samba.org/home/svn/samba/branches/SAMBA_3_0
Modified:
   trunk/source/passdb/passdb.c
   trunk/source/passdb/pdb_ldap.c


Changeset:
Modified: trunk/source/passdb/passdb.c
===================================================================
--- trunk/source/passdb/passdb.c	2005-01-19 22:50:27 UTC (rev 4860)
+++ trunk/source/passdb/passdb.c	2005-01-19 22:53:01 UTC (rev 4861)
@@ -1770,6 +1770,7 @@
 	uint32		lm_pw_len, nt_pw_len, nt_pw_hist_len, hourslen;
 	uint32 pwHistLen = 0;
 	BOOL ret = True;
+	fstring tmpstring;
 	
 	if(sampass == NULL || buf == NULL) {
 		DEBUG(0, ("init_sam_from_buffer_v2: NULL parameters found!\n"));
@@ -1833,7 +1834,9 @@
 	pdb_set_fullname(sampass, fullname, PDB_SET);
 
 	if (homedir) {
-		pdb_set_homedir(sampass, homedir, PDB_SET);
+		fstrcpy( tmpstring, homedir );
+		standard_sub_basic( username, tmpstring, sizeof(tmpstring) );
+		pdb_set_homedir(sampass, tmpstring, PDB_SET);
 	}
 	else {
 		pdb_set_homedir(sampass, 
@@ -1843,14 +1846,14 @@
 
 	if (dir_drive) 	
 		pdb_set_dir_drive(sampass, dir_drive, PDB_SET);
-	else {
-		pdb_set_dir_drive(sampass, 
-			talloc_sub_basic(sampass->mem_ctx,  username, lp_logon_drive()),
-			PDB_DEFAULT);
+	else
+		pdb_set_dir_drive(sampass, lp_logon_drive(), PDB_DEFAULT );
+
+	if (logon_script) {
+		fstrcpy( tmpstring, logon_script );
+		standard_sub_basic( username, tmpstring, sizeof(tmpstring) );
+		pdb_set_logon_script(sampass, tmpstring, PDB_SET);
 	}
-
-	if (logon_script) 
-		pdb_set_logon_script(sampass, logon_script, PDB_SET);
 	else {
 		pdb_set_logon_script(sampass, 
 			talloc_sub_basic(sampass->mem_ctx, username, lp_logon_script()),
@@ -1858,8 +1861,11 @@
 	}
 	
 	if (profile_path) {	
-		pdb_set_profile_path(sampass, profile_path, PDB_SET);
-	} else {
+		fstrcpy( tmpstring, profile_path );
+		standard_sub_basic( username, tmpstring, sizeof(tmpstring) );
+		pdb_set_profile_path(sampass, tmpstring, PDB_SET);
+	} 
+	else {
 		pdb_set_profile_path(sampass, 
 			talloc_sub_basic(sampass->mem_ctx, username, lp_logon_path()),
 			PDB_DEFAULT);

Modified: trunk/source/passdb/pdb_ldap.c
===================================================================
--- trunk/source/passdb/pdb_ldap.c	2005-01-19 22:50:27 UTC (rev 4860)
+++ trunk/source/passdb/pdb_ldap.c	2005-01-19 22:53:01 UTC (rev 4861)
@@ -505,6 +505,7 @@
 	pstring temp;
 	LOGIN_CACHE	*cache_entry = NULL;
 	int pwHistLen;
+	pstring		tmpstring;
 
 	/*
 	 * do a little initialization
@@ -664,9 +665,7 @@
 	if (!smbldap_get_single_pstring(ldap_state->smbldap_state->ldap_struct, entry, 
 			get_userattr_key2string(ldap_state->schema_ver, LDAP_ATTR_HOME_DRIVE), dir_drive)) 
 	{
-		pdb_set_dir_drive( sampass, 
-			talloc_sub_basic(sampass->mem_ctx, username, lp_logon_drive()),
-			PDB_DEFAULT );
+		pdb_set_dir_drive( sampass, lp_logon_drive(), PDB_DEFAULT );
 	} else {
 		pdb_set_dir_drive(sampass, dir_drive, PDB_SET);
 	}
@@ -678,7 +677,9 @@
 			talloc_sub_basic(sampass->mem_ctx, username, lp_logon_home()),
 			PDB_DEFAULT );
 	} else {
-		pdb_set_homedir(sampass, homedir, PDB_SET);
+		pstrcpy( tmpstring, homedir );
+		standard_sub_basic( username, tmpstring, sizeof(tmpstring) );
+		pdb_set_homedir(sampass, tmpstring, PDB_SET);
 	}
 
 	if (!smbldap_get_single_pstring(ldap_state->smbldap_state->ldap_struct, entry,
@@ -688,7 +689,9 @@
 			talloc_sub_basic(sampass->mem_ctx, username, lp_logon_script()), 
 			PDB_DEFAULT );
 	} else {
-		pdb_set_logon_script(sampass, logon_script, PDB_SET);
+		pstrcpy( tmpstring, logon_script );
+		standard_sub_basic( username, tmpstring, sizeof(tmpstring) );
+		pdb_set_logon_script(sampass, tmpstring, PDB_SET);
 	}
 
 	if (!smbldap_get_single_pstring(ldap_state->smbldap_state->ldap_struct, entry,
@@ -698,7 +701,9 @@
 			talloc_sub_basic( sampass->mem_ctx, username, lp_logon_path()),
 			PDB_DEFAULT );
 	} else {
-		pdb_set_profile_path(sampass, profile_path, PDB_SET);
+		pstrcpy( tmpstring, profile_path );
+		standard_sub_basic( username, tmpstring, sizeof(tmpstring) );
+		pdb_set_profile_path(sampass, tmpstring, PDB_SET);
 	}
 
 	if (!smbldap_get_single_pstring(ldap_state->smbldap_state->ldap_struct, entry, 



More information about the samba-cvs mailing list