summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/samdb')
-rw-r--r--source4/dsdb/samdb/ldb_modules/repl_meta_data.c12
1 files changed, 10 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 ebd005e46e..17dcba5929 100644
--- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
+++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c
@@ -2981,9 +2981,17 @@ static int replmd_replicated_apply_merge(struct replmd_replicated_request *ar)
md_remote = replmd_replPropertyMetaData1_find_attid(rmd, DRSUAPI_ATTRIBUTE_name);
if (md_remote) {
md_local = replmd_replPropertyMetaData1_find_attid(&omd, DRSUAPI_ATTRIBUTE_name);
- SMB_ASSERT(md_local);
+ if (!md_local) {
+ DEBUG(0,(__location__ ": No md_local in RPMD\n"));
+ return replmd_replicated_request_werror(ar, WERR_DS_DRA_INTERNAL_ERROR);
+ }
if (replmd_replPropertyMetaData1_is_newer(md_local, md_remote)) {
- SMB_ASSERT(ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0);
+ if (ldb_dn_compare(msg->dn, ar->search_msg->dn) != 0) {
+ DEBUG(0,(__location__ ": DNs don't match in RPMD: %s %s\n",
+ ldb_dn_get_linearized(msg->dn),
+ ldb_dn_get_linearized(ar->search_msg->dn)));
+ return replmd_replicated_request_werror(ar, WERR_DS_DRA_INTERNAL_ERROR);
+ }
/* TODO: Find appropriate local name (dn) for the object
* and modify msg->dn appropriately */