diff options
author | Arvid Requate <requate@univention.de> | 2014-02-06 17:50:57 +0100 |
---|---|---|
committer | David Disseldorp <ddiss@samba.org> | 2014-02-06 21:42:22 +0100 |
commit | 98c961eb82194cd0738dbc58e4ae9f81771b409e (patch) | |
tree | 46baaa25cb52eb5b577112140f3669fa1e011472 /source4/dsdb | |
parent | be8cd928cf3f71a6974d1b09e9a7dfd6a40bf7ba (diff) | |
download | samba-98c961eb82194cd0738dbc58e4ae9f81771b409e.tar.gz samba-98c961eb82194cd0738dbc58e4ae9f81771b409e.tar.xz samba-98c961eb82194cd0738dbc58e4ae9f81771b409e.zip |
s4:samdb: respect SEARCH_FLAG_PRESERVEONDELETE
According to MS-ADTS section 3.1.1.5.5.1.1 the searchFlags must be
checked.
Signed-off-by: Arvid Requate <requate@univention.de>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: David Disseldorp <ddiss@samba.org>
Autobuild-User(master): David Disseldorp <ddiss@samba.org>
Autobuild-Date(master): Thu Feb 6 21:42:22 CET 2014 on sn-devel-104
Diffstat (limited to 'source4/dsdb')
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index 91a5d9233c5..c5dcf2140f1 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -3214,8 +3214,13 @@ static int replmd_delete_internals(struct ldb_module *module, struct ldb_request */ continue; } - if (!sa->linkID && ldb_attr_in_list(preserved_attrs, el->name)) { - continue; + if (!sa->linkID) { + if (ldb_attr_in_list(preserved_attrs, el->name)) { + continue; + } + if (sa->searchFlags & SEARCH_FLAG_PRESERVEONDELETE) { + continue; + } } ret = ldb_msg_add_empty(msg, el->name, LDB_FLAG_MOD_DELETE, &el); if (ret != LDB_SUCCESS) { |