svn commit: samba r1705 - trunk/source/passdb

mimir at samba.org mimir at samba.org
Tue Aug 10 21:15:28 GMT 2004


Author: mimir
Date: 2004-08-10 21:15:27 +0000 (Tue, 10 Aug 2004)
New Revision: 1705
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/&rev=1705&nolog=1
Log:
1) When updating skip the password when it's zero length or put it (even
   if empty) otherwise
2) Use snprintf functions instead of slprintf, which is the same btw
3) Skip trust flags field if zero


rafal


Modified:
   trunk/source/passdb/pdb_ldap.c

Changeset:
Modified: trunk/source/passdb/pdb_ldap.c
===================================================================
--- trunk/source/passdb/pdb_ldap.c	2004-08-10 21:05:08 UTC (rev 1704)
+++ trunk/source/passdb/pdb_ldap.c	2004-08-10 21:15:27 UTC (rev 1705)
@@ -3275,6 +3275,7 @@
 		return False;
 	}
 
+	/* Attribute names to avoid extra calls get_attr_key2string and make code clearer */
 	attr_domain = get_attr_key2string(trustpw_attr_list, LDAP_ATTR_DOMAIN);
 	attr_ntpw   = get_attr_key2string(trustpw_attr_list, LDAP_ATTR_NTPW);
 	attr_sid    = get_attr_key2string(trustpw_attr_list, LDAP_ATTR_SID);
@@ -3295,19 +3296,21 @@
 	}
 
 	/* Trust password itself */
-	if (strlen(pdb_get_tp_pass(trustpw))) {
-		pdb_sethexpwd(hexpwd, pdb_get_tp_pass(trustpw), 0);
-		if (entry) {
+	pdb_sethexpwd(hexpwd, pdb_get_tp_pass(trustpw), 0);
+	if (entry) {
+		/* in case of updating we only need to do that if anything has been
+		   entered at new password prompt */
+		if (strlen(pdb_get_tp_pass(trustpw))) {
 			ret = smbldap_get_single_attribute(ldap_state->smbldap_state->ldap_struct, entry,
 							   attr_ntpw, attr_val, sizeof(attr_val));
 			if (ret)
 				if (strncmp(hexpwd, attr_val, sizeof(attr_val)))
 					smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
 							 attr_ntpw, hexpwd);
-		} else {
-			smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
-					 attr_ntpw, hexpwd);
 		}
+	} else {
+		smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
+				 attr_ntpw, hexpwd);
 	}
 
 	/* SID of the trust password */
@@ -3326,7 +3329,7 @@
 	}
 
 	/* Last change time */
-	slprintf(mtime_str, sizeof(mtime_str) - 1, "%li", pdb_get_tp_mod_time(trustpw));
+	snprintf(mtime_str, sizeof(mtime_str) - 1, "%li", pdb_get_tp_mod_time(trustpw));
 	if (entry) {
 		ret = smbldap_get_single_attribute(ldap_state->smbldap_state->ldap_struct, entry,
 						   attr_lct, attr_val, sizeof(attr_val));
@@ -3340,14 +3343,16 @@
 	}
 	
 	/* Trust type flags */ 
-	slprintf(flags_str, sizeof(flags_str) - 1, "%i", pdb_get_tp_flags(trustpw));
+	snprintf(flags_str, sizeof(flags_str) - 1, "%i", pdb_get_tp_flags(trustpw));
 	if (entry) {
-		ret = smbldap_get_single_attribute(ldap_state->smbldap_state->ldap_struct, entry,
-						   attr_flags, attr_val, sizeof(attr_val));
-		if (ret)
-			if (strncmp(flags_str, attr_val, sizeof(attr_val)))
-				smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
-						 attr_flags, flags_str);
+		if (pdb_get_tp_flags(trustpw)) {
+			ret = smbldap_get_single_attribute(ldap_state->smbldap_state->ldap_struct, entry,
+							   attr_flags, attr_val, sizeof(attr_val));
+			if (ret)
+				if (strncmp(flags_str, attr_val, sizeof(attr_val)))
+					smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
+							 attr_flags, flags_str);
+		}
 	} else {
 		smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
 				 attr_flags, flags_str);
@@ -3649,7 +3654,7 @@
 	ldap_op = LDAP_MOD_ADD;
 
 	/* DN of the object being added */
-	slprintf(dn, sizeof(dn) - 1, "%s=%s,%s=%s,%s", get_attr_key2string(trustpw_attr_list, LDAP_ATTR_DOMAIN),
+	snprintf(dn, sizeof(dn) - 1, "%s=%s,%s=%s,%s", get_attr_key2string(trustpw_attr_list, LDAP_ATTR_DOMAIN),
 	         dom_name, get_attr_key2string(dominfo_attr_list, LDAP_ATTR_DOMAIN), lp_workgroup(),
 	         lp_ldap_suffix());
 
@@ -3753,7 +3758,7 @@
 	ldap_op = LDAP_MOD_REPLACE;
 
 	/* DN of the object being added */
-	slprintf(dn, sizeof(dn) - 1, "%s=%s,%s=%s,%s", get_attr_key2string(trustpw_attr_list, LDAP_ATTR_DOMAIN),
+	snprintf(dn, sizeof(dn) - 1, "%s=%s,%s=%s,%s", get_attr_key2string(trustpw_attr_list, LDAP_ATTR_DOMAIN),
 	         dom_name, get_attr_key2string(dominfo_attr_list, LDAP_ATTR_DOMAIN), lp_workgroup(),
 	         lp_ldap_suffix());
 



More information about the samba-cvs mailing list