diff options
Diffstat (limited to 'source4/rpc_server/dnsserver/dnsutils.c')
-rw-r--r-- | source4/rpc_server/dnsserver/dnsutils.c | 14 |
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; |