s4-dsdb: use ldb_msg_canonicalize_ex() in source4/lib/ldb/common/ldb.c
authorKamen Mazdrashki <kamenim@samba.org>
Fri, 9 Jul 2010 23:29:40 +0000 (02:29 +0300)
committerKamen Mazdrashki <kamenim@samba.org>
Sat, 10 Jul 2010 20:03:15 +0000 (23:03 +0300)
source4/lib/ldb/common/ldb.c

index 877f283491f265ee7ea16f91c1f5b11855524d7f..0d73d100d131a2a084edb18f8dde5b4ab999ebf3 100644 (file)
@@ -798,12 +798,13 @@ int ldb_request(struct ldb_context *ldb, struct ldb_request *req)
                /* we have to canonicalise here, as so many places
                 * in modules and backends assume we don't have two
                 * elements with the same name */
-               req->op.add.message = ldb_msg_canonicalize(ldb, req->op.add.message);
-               if (!req->op.add.message) {
+               ret = ldb_msg_canonicalize_ex(ldb, req->op.add.message,
+                                             (TALLOC_CTX*)req,
+                                             discard_const(&req->op.add.message));
+               if (ret != LDB_SUCCESS) {
                        ldb_oom(ldb);
                        return LDB_ERR_OPERATIONS_ERROR;
                }
-               talloc_steal(req, req->op.add.message);
                FIRST_OP(ldb, add);
                ret = module->ops->add(module, req);
                break;