summaryrefslogtreecommitdiff
path: root/source4/rpc_server/dnsserver/dnsutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/rpc_server/dnsserver/dnsutils.c')
-rw-r--r--source4/rpc_server/dnsserver/dnsutils.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source4/rpc_server/dnsserver/dnsutils.c b/source4/rpc_server/dnsserver/dnsutils.c
index a1c749074af..b3d8949f8ab 100644
--- a/source4/rpc_server/dnsserver/dnsutils.c
+++ b/source4/rpc_server/dnsserver/dnsutils.c
@@ -371,6 +371,8 @@ struct ldb_dn *dnsserver_name_to_dn(TALLOC_CTX *mem_ctx, struct dnsserver_zone *
{
struct ldb_dn *dn;
bool ret;
+ struct ldb_val name_val =
+ data_blob_string_const(name);
dn = ldb_dn_copy(mem_ctx, z->zone_dn);
if (dn == NULL) {
@@ -378,9 +380,17 @@ struct ldb_dn *dnsserver_name_to_dn(TALLOC_CTX *mem_ctx, struct dnsserver_zone *
}
if (strcasecmp(name, z->name) == 0) {
ret = ldb_dn_add_child_fmt(dn, "DC=@");
- } else {
- ret = ldb_dn_add_child_fmt(dn, "DC=%s", name);
+ if (!ret) {
+ talloc_free(dn);
+ return NULL;
+ }
+ return dn;
}
+
+ ret = ldb_dn_add_child_val(dn,
+ "DC",
+ name_val);
+
if (!ret) {
talloc_free(dn);
return NULL;