mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
res_resolver_unbound: Fix leak of config nameserver strings.
Change-Id: I3f396316bb40d1ae6e91f5f688042420f1a540ed
This commit is contained in:
@@ -432,20 +432,22 @@ static int unbound_config_preapply(struct unbound_config *cfg)
|
|||||||
|
|
||||||
if (cfg->global->nameservers) {
|
if (cfg->global->nameservers) {
|
||||||
struct ao2_iterator it_nameservers;
|
struct ao2_iterator it_nameservers;
|
||||||
const char *nameserver;
|
char *nameserver;
|
||||||
|
|
||||||
it_nameservers = ao2_iterator_init(cfg->global->nameservers, 0);
|
it_nameservers = ao2_iterator_init(cfg->global->nameservers, 0);
|
||||||
while ((nameserver = ao2_iterator_next(&it_nameservers))) {
|
while (!res && (nameserver = ao2_iterator_next(&it_nameservers))) {
|
||||||
res = ub_ctx_set_fwd(cfg->global->state->resolver->context, (UNBOUND_CHAR *)nameserver);
|
res = ub_ctx_set_fwd(cfg->global->state->resolver->context, (UNBOUND_CHAR *)nameserver);
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
ast_log(LOG_ERROR, "Failed to add nameserver '%s' to unbound resolver: %s\n",
|
ast_log(LOG_ERROR, "Failed to add nameserver '%s' to unbound resolver: %s\n",
|
||||||
nameserver, ub_strerror(res));
|
nameserver, ub_strerror(res));
|
||||||
ao2_iterator_destroy(&it_nameservers);
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
ao2_ref(nameserver, -1);
|
||||||
}
|
}
|
||||||
ao2_iterator_destroy(&it_nameservers);
|
ao2_iterator_destroy(&it_nameservers);
|
||||||
|
if (res) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(cfg->global->resolv, "system")) {
|
if (!strcmp(cfg->global->resolv, "system")) {
|
||||||
|
Reference in New Issue
Block a user