From 3764b93b7c9df4bcc03e4fbf2e1acb5f7a3d268d Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Sun, 3 Jul 2011 22:06:34 +0400 Subject: [PATCH] s4-dsdb: check for single valued attribute in repl_meta_data module This is needed because we can have more than 1 value in a single valued attribute as we store also deleted values. So we do the check in repl_meta_data and then indicate LDB to do the check. Signed-off-by: Andrew Tridgell --- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c index 830c118945f..23632609636 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -2168,6 +2168,17 @@ static int replmd_modify_handle_linked_attribs(struct ldb_module *module, el->flags, el->name); return LDB_ERR_UNWILLING_TO_PERFORM; } + if (dsdb_check_single_valued_link(schema_attr, el) != LDB_SUCCESS) { + ldb_asprintf_errstring(ldb, + "Attribute %s is single valued but more than one value has been supplied", + el->name); + return LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS; + } else { + el->flags |= LDB_FLAG_INTERNAL_DISABLE_SINGLE_VALUE_CHECK; + } + + + if (ret != LDB_SUCCESS) { return ret; } -- 2.11.4.GIT