From 61ba17973a8b373f32702d0ed1f1c2d3db4e10ba Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sun, 30 Oct 2016 23:54:44 +0100 Subject: [PATCH] s4:repl_meta_data: normalize rdn attribute name via the schema BUG: https://bugzilla.samba.org/show_bug.cgi?id=12399 Signed-off-by: Stefan Metzmacher --- source4/dsdb/samdb/ldb_modules/repl_meta_data.c | 10 ++++++++-- 1 file changed, 8 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 7a5906e..73f7d0e 100644 --- a/source4/dsdb/samdb/ldb_modules/repl_meta_data.c +++ b/source4/dsdb/samdb/ldb_modules/repl_meta_data.c @@ -1446,15 +1446,21 @@ static int replmd_update_rpmd_rdn_attr(struct ldb_context *ldb, NTTIME now, bool is_schema_nc) { + const char *rdn_name = ldb_dn_get_rdn_name(msg->dn); + const struct dsdb_attribute *rdn_attr = + dsdb_attribute_by_lDAPDisplayName(ar->schema, rdn_name); + const char *attr_name = rdn_attr != NULL ? + rdn_attr->lDAPDisplayName : + rdn_name; struct ldb_message_element new_el = { .flags = LDB_FLAG_MOD_REPLACE, - .name = ldb_dn_get_rdn_name(msg->dn), + .name = attr_name, .num_values = 1, .values = discard_const_p(struct ldb_val, rdn_new) }; struct ldb_message_element old_el = { .flags = LDB_FLAG_MOD_REPLACE, - .name = ldb_dn_get_rdn_name(msg->dn), + .name = attr_name, .num_values = rdn_old ? 1 : 0, .values = discard_const_p(struct ldb_val, rdn_old) }; -- 1.9.1