diff options
author | Matthias Dieter Wallnöfer <mdw@samba.org> | 2010-06-03 18:35:00 +0200 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mdw@samba.org> | 2010-06-06 23:13:15 +0200 |
commit | 98b98a29f6502422fb6e4bd8c16b5731e2c9c553 (patch) | |
tree | 084c1597e7dba7227ee549fff787260f5f5544f4 | |
parent | 28cb8839b75ed9a023a032c195469b61224fe688 (diff) | |
download | samba-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.c | 23 |
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)) { |