diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/rpc_server/dnsserver/dcerpc_dnsserver.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c index 5f4009bafe..fac99e1cb6 100644 --- a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c +++ b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c @@ -1852,7 +1852,12 @@ static WERROR dnsserver_update_record(struct dnsserver_state *dsstate, tmp_ctx = talloc_new(mem_ctx); W_ERROR_HAVE_NO_MEMORY(tmp_ctx); - name = dns_split_node_name(tmp_ctx, node_name, z->name); + /* If node_name is @ or zone name, dns record is @ */ + if (strcmp(node_name, "@") == 0 || strcmp(node_name, z->name) == 0) { + name = talloc_strdup(tmp_ctx, "@"); + } else { + name = dns_split_node_name(tmp_ctx, node_name, z->name); + } W_ERROR_HAVE_NO_MEMORY_AND_FREE(name, tmp_ctx); if (add_buf != NULL) { |