diff options
author | Matthias Dieter Wallnöfer <mdw@samba.org> | 2010-06-03 18:22:10 +0200 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mdw@samba.org> | 2010-06-06 23:13:00 +0200 |
commit | 28cb8839b75ed9a023a032c195469b61224fe688 (patch) | |
tree | 5e5829644276579116c870656cbc82511d56cfd6 /source4/lib/ldb/common | |
parent | 93db960fae43913a423fe1e35a60acf5ed0cc437 (diff) | |
download | samba-28cb8839b75ed9a023a032c195469b61224fe688.tar.gz samba-28cb8839b75ed9a023a032c195469b61224fe688.tar.bz2 samba-28cb8839b75ed9a023a032c195469b61224fe688.zip |
ldb:ldb_msg_remove_attr - provide a better implementation
We can have some special (bad) messages which contain multiple message elements
for the same attribute. The AD password change ones are such an example.
Diffstat (limited to 'source4/lib/ldb/common')
-rw-r--r-- | source4/lib/ldb/common/ldb_msg.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source4/lib/ldb/common/ldb_msg.c b/source4/lib/ldb/common/ldb_msg.c index 59bd32090e..4d0149af8f 100644 --- a/source4/lib/ldb/common/ldb_msg.c +++ b/source4/lib/ldb/common/ldb_msg.c @@ -798,8 +798,9 @@ void ldb_msg_remove_element(struct ldb_message *msg, struct ldb_message_element */ void ldb_msg_remove_attr(struct ldb_message *msg, const char *attr) { - struct ldb_message_element *el = ldb_msg_find_element(msg, attr); - if (el) { + struct ldb_message_element *el; + + while ((el = ldb_msg_find_element(msg, attr)) != NULL) { ldb_msg_remove_element(msg, el); } } |