svn commit: samba r1722 - in trunk/source: passdb utils
mimir at samba.org
mimir at samba.org
Wed Aug 11 15:46:33 GMT 2004
Author: mimir
Date: 2004-08-11 15:46:33 +0000 (Wed, 11 Aug 2004)
New Revision: 1722
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/trunk/source&rev=1722&nolog=1
Log:
Empty (zeroed) sid passed in update function argument means "do not change it".
Also, more descriptive comment of ldap mod structure initialisation from trust
password structure.
rafal
Modified:
trunk/source/passdb/pdb_ldap.c
trunk/source/utils/pdbedit.c
Changeset:
Modified: trunk/source/passdb/pdb_ldap.c
===================================================================
--- trunk/source/passdb/pdb_ldap.c 2004-08-11 09:34:30 UTC (rev 1721)
+++ trunk/source/passdb/pdb_ldap.c 2004-08-11 15:46:33 UTC (rev 1722)
@@ -3252,7 +3252,9 @@
/**
- * Init LDAP structures passed to ldap calls from trust password structure.
+ * Init LDAP structures passed to ldap calls from trust password structure. Fill out
+ * every field if in case of new ldap entry (entry parameter is NULL) or only those
+ * that have changed, when compared to existing ldap entry (entry parameter is not NULL).
*
* @param ldap_state LDAP state structure required by ldap calls
* @param entry LDAPMessage existing entry structure returned from ldap calls (if any)
@@ -3319,10 +3321,16 @@
if (entry) {
ret = smbldap_get_single_attribute(ldap_state->smbldap_state->ldap_struct, entry,
attr_sid, attr_val, sizeof(attr_val));
- if (ret)
- if (strncmp(sid_to_string(sidstr, sid), attr_val, sizeof(attr_val)))
+ if (ret) {
+ /* pattern of "empty sid compare" */
+ DOM_SID empty;
+ memset(&empty, 0, sizeof(empty));
+
+ if (memcmp((void*)sid, (void*)&empty, sizeof(DOM_SID)) &&
+ strncmp(sid_to_string(sidstr, sid), attr_val, sizeof(attr_val)))
smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
attr_sid, sidstr);
+ }
} else {
smbldap_make_mod(ldap_state->smbldap_state->ldap_struct, entry, mod,
attr_sid, sidstr);
Modified: trunk/source/utils/pdbedit.c
===================================================================
--- trunk/source/utils/pdbedit.c 2004-08-11 09:34:30 UTC (rev 1721)
+++ trunk/source/utils/pdbedit.c 2004-08-11 15:46:33 UTC (rev 1722)
@@ -834,7 +834,8 @@
printf("Error: incorrect SID specified !\n");
return -1;
}
- }
+ } else
+ memset(&trust.private.domain_sid, 0, sizeof(trust.private.domain_sid));
/* flags */
trust.private.flags = (flag) ? trustpw_flag(flag) : 0;
More information about the samba-cvs
mailing list