From: Volker Lendecke Date: Tue, 29 May 2012 13:20:21 +0000 (+0200) Subject: s4-dns: Create a proper talloc hierarchy in create_response_rr X-Git-Tag: samba-4.0.0beta1~163 X-Git-Url: http://git.samba.org/?a=commitdiff_plain;h=6cdbce266b6ecccf181429949104df700d58351c;p=ddiss%2Fsamba.git s4-dns: Create a proper talloc hierarchy in create_response_rr Pair-Programmed-With: Michael Adam Signed-off-by: Kai Blin --- diff --git a/source4/dns_server/dns_query.c b/source4/dns_server/dns_query.c index b57a26c7632..3564140948b 100644 --- a/source4/dns_server/dns_query.c +++ b/source4/dns_server/dns_query.c @@ -67,11 +67,23 @@ static WERROR create_response_rr(const struct dns_name_question *question, ans[ai].rdata.srv_record.priority = rec->data.srv.wPriority; ans[ai].rdata.srv_record.weight = rec->data.srv.wWeight; ans[ai].rdata.srv_record.port = rec->data.srv.wPort; - ans[ai].rdata.srv_record.target = rec->data.srv.nameTarget; + ans[ai].rdata.srv_record.target = talloc_strdup( + ans, rec->data.srv.nameTarget); + if (ans[ai].rdata.srv_record.target == NULL) { + return WERR_NOMEM; + } break; case DNS_QTYPE_SOA: - ans[ai].rdata.soa_record.mname = rec->data.soa.mname; - ans[ai].rdata.soa_record.rname = rec->data.soa.rname; + ans[ai].rdata.soa_record.mname = talloc_strdup( + ans, rec->data.soa.mname); + if (ans[ai].rdata.soa_record.mname == NULL) { + return WERR_NOMEM; + } + ans[ai].rdata.soa_record.rname = talloc_strdup( + ans, rec->data.soa.rname); + if (ans[ai].rdata.soa_record.rname == NULL) { + return WERR_NOMEM; + } ans[ai].rdata.soa_record.serial = rec->data.soa.serial; ans[ai].rdata.soa_record.refresh = rec->data.soa.refresh; ans[ai].rdata.soa_record.retry = rec->data.soa.retry;