replmd: special-case member return value in replmd_add_fix_la()
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Wed, 31 May 2017 05:40:05 +0000 (17:40 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 15 Jun 2017 15:33:11 +0000 (17:33 +0200)
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Pair-programmed-with: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/dsdb/samdb/ldb_modules/repl_meta_data.c

index 288c66899737d4400dbd65e60edb347b961db841..e40449452c11a1e79cc3cdd2285c1bf9ae4714ce 100644 (file)
@@ -947,7 +947,11 @@ static int replmd_add_fix_la(struct ldb_module *module, TALLOC_CTX *mem_ctx,
                                        "Linked attribute %s has "
                                        "multiple identical values", el->name);
                        talloc_free(tmp_ctx);
-                       return LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
+                       if (ldb_attr_cmp(el->name, "member") == 0) {
+                               return LDB_ERR_ENTRY_ALREADY_EXISTS;
+                       } else {
+                               return LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS;
+                       }
                }
                ret = replmd_build_la_val(el->values, p->v, p->dsdb_dn,
                                          &ac->our_invocation_id,