summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Dieter Wallnöfer <mdw@samba.org>2010-06-03 18:35:00 +0200
committerMatthias Dieter Wallnöfer <mdw@samba.org>2010-06-06 23:13:15 +0200
commit98b98a29f6502422fb6e4bd8c16b5731e2c9c553 (patch)
tree084c1597e7dba7227ee549fff787260f5f5544f4
parent28cb8839b75ed9a023a032c195469b61224fe688 (diff)
downloadsamba-98b98a29f6502422fb6e4bd8c16b5731e2c9c553.tar.gz
samba-98b98a29f6502422fb6e4bd8c16b5731e2c9c553.tar.bz2
samba-98b98a29f6502422fb6e4bd8c16b5731e2c9c553.zip
s4:password_hash LDB module - adapt the module to the new "ldb_msg_remove_attr" behaviour
-rw-r--r--source4/dsdb/samdb/ldb_modules/password_hash.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/password_hash.c b/source4/dsdb/samdb/ldb_modules/password_hash.c
index 58ab6f7b30..1b0b490f5f 100644
--- a/source4/dsdb/samdb/ldb_modules/password_hash.c
+++ b/source4/dsdb/samdb/ldb_modules/password_hash.c
@@ -2266,22 +2266,11 @@ static int password_hash_add_do_add(struct ph_context *ac)
return LDB_ERR_OPERATIONS_ERROR;
}
- /* remove attributes that we just read into 'io' (handle also superfluous
- * "password modify" trials - multiple attributes with the same name -
- * on add operations) */
- while (ldb_msg_find_element(msg, "userPassword") != NULL) {
- ldb_msg_remove_attr(msg, "userPassword");
- }
- while (ldb_msg_find_element(msg, "clearTextPassword") != NULL) {
- ldb_msg_remove_attr(msg, "clearTextPassword");
- }
- while (ldb_msg_find_element(msg, "unicodePwd") != NULL) {
- ldb_msg_remove_attr(msg, "unicodePwd");
- }
- while (ldb_msg_find_element(msg, "dBCSPwd") != NULL) {
- ldb_msg_remove_attr(msg, "dBCSPwd");
- }
-
+ /* remove attributes that we just read into 'io' */
+ ldb_msg_remove_attr(msg, "userPassword");
+ ldb_msg_remove_attr(msg, "clearTextPassword");
+ ldb_msg_remove_attr(msg, "unicodePwd");
+ ldb_msg_remove_attr(msg, "dBCSPwd");
ldb_msg_remove_attr(msg, "pwdLastSet");
ldb = ldb_module_get_ctx(ac->module);
@@ -2452,7 +2441,7 @@ static int password_hash_modify(struct ldb_module *module, struct ldb_request *r
*l);
return LDB_ERR_CONSTRAINT_VIOLATION;
}
- ldb_msg_remove_attr(msg, *l);
+ ldb_msg_remove_element(msg, passwordAttr);
}
}
if ((del_attr_cnt > 0) && (add_attr_cnt == 0)) {