From: Andreas Schneider Date: Fri, 12 Apr 2024 06:16:33 +0000 (+0200) Subject: s4:rpc_server: Use lpcfg_dnsdomain() in dnsdb.c X-Git-Tag: tdb-1.4.11~587 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26fd78040e55ea957df5874d0b29f6eb4175f150;p=thirdparty%2Fsamba.git s4:rpc_server: Use lpcfg_dnsdomain() in dnsdb.c Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett --- diff --git a/source4/rpc_server/dnsserver/dnsdb.c b/source4/rpc_server/dnsserver/dnsdb.c index 2384d23f878..dc32169dccc 100644 --- a/source4/rpc_server/dnsserver/dnsdb.c +++ b/source4/rpc_server/dnsserver/dnsdb.c @@ -1143,7 +1143,8 @@ WERROR dnsserver_db_create_zone(struct ldb_context *samdb, TALLOC_CTX *tmp_ctx; struct dnsp_DnssrvRpcRecord *dns_rec; struct dnsp_soa soa; - char *tmpstr, *soa_email; + char *soa_email = NULL; + const char *dnsdomain = NULL; struct ldb_val name_val = data_blob_string_const(zone->name); /* We only support primary zones for now */ @@ -1195,12 +1196,16 @@ WERROR dnsserver_db_create_zone(struct ldb_context *samdb, dns_rec = talloc_zero_array(tmp_ctx, struct dnsp_DnssrvRpcRecord, 2); W_ERROR_HAVE_NO_MEMORY_AND_FREE(dns_rec, tmp_ctx); - tmpstr = talloc_asprintf(tmp_ctx, "hostmaster.%s", - lpcfg_realm(lp_ctx)); - W_ERROR_HAVE_NO_MEMORY_AND_FREE(tmpstr, tmp_ctx); - soa_email = strlower_talloc(tmp_ctx, tmpstr); - W_ERROR_HAVE_NO_MEMORY_AND_FREE(soa_email, tmp_ctx); - talloc_free(tmpstr); + dnsdomain = lpcfg_dnsdomain(lp_ctx); + if (dnsdomain == NULL) { + talloc_free(tmp_ctx); + return WERR_NOT_ENOUGH_MEMORY; + } + soa_email = talloc_asprintf(tmp_ctx, "hostmaster.%s", dnsdomain); + if (soa_email == NULL) { + talloc_free(tmp_ctx); + return WERR_NOT_ENOUGH_MEMORY; + } /* SOA Record - values same as defined in provision/sambadns.py */ soa.serial = 1; @@ -1208,7 +1213,7 @@ WERROR dnsserver_db_create_zone(struct ldb_context *samdb, soa.retry = 600; soa.expire = 86400; soa.minimum = 3600; - soa.mname = lpcfg_dns_hostname(lp_ctx); + soa.mname = dnsdomain; soa.rname = soa_email; dns_rec[0].wType = DNS_TYPE_SOA; @@ -1224,7 +1229,7 @@ WERROR dnsserver_db_create_zone(struct ldb_context *samdb, dns_rec[1].dwSerial = soa.serial; dns_rec[1].dwTtlSeconds = 3600; dns_rec[1].dwTimeStamp = 0; - dns_rec[1].data.ns = lpcfg_dns_hostname(lp_ctx); + dns_rec[1].data.ns = dnsdomain; /* Add @ Record */ status = dnsserver_db_do_add_rec(tmp_ctx, samdb, dn, 2, dns_rec);