ldb:rdn_name: normalize rdn_name in rdn_rename_callback()
authorStefan Metzmacher <metze@samba.org>
Thu, 10 Nov 2016 13:01:21 +0000 (14:01 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 1 Dec 2016 04:54:23 +0000 (05:54 +0100)
We already do that on 'add'.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12399

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
lib/ldb/modules/rdn_name.c

index f44ea71f660c4e34335c25e4570e9ce42059cb3b..e8d5d8ae9bd150a63541d4f9a6414930ca56f6bd 100644 (file)
@@ -243,6 +243,7 @@ static int rdn_rename_callback(struct ldb_request *req, struct ldb_reply *ares)
        struct rename_context *ac;
        struct ldb_request *mod_req;
        const char *rdn_name;
+       const struct ldb_schema_attribute *a = NULL;
        const struct ldb_val *rdn_val_p;
        struct ldb_val rdn_val;
        struct ldb_message *msg;
@@ -286,6 +287,15 @@ static int rdn_rename_callback(struct ldb_request *req, struct ldb_reply *ares)
                goto error;
        }
 
+       a = ldb_schema_attribute_by_name(ldb, rdn_name);
+       if (a == NULL) {
+               goto error;
+       }
+
+       if (a->name != NULL) {
+               rdn_name = a->name;
+       }
+
        rdn_val_p = ldb_dn_get_rdn_val(msg->dn);
        if (rdn_val_p == NULL) {
                goto error;