summaryrefslogtreecommitdiff
path: root/source4/heimdal_build/glue.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/heimdal_build/glue.c')
-rw-r--r--source4/heimdal_build/glue.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source4/heimdal_build/glue.c b/source4/heimdal_build/glue.c
index df08cae57c..07062ae8bf 100644
--- a/source4/heimdal_build/glue.c
+++ b/source4/heimdal_build/glue.c
@@ -31,22 +31,30 @@
krb5_error_code KRB5_LIB_FUNCTION krb5_get_all_client_addrs(krb5_context context, krb5_addresses *res)
{
int i;
- res->len = iface_count(global_loadparm);
+ struct interface *ifaces;
+
+ load_interfaces(NULL, lp_interfaces(global_loadparm), &ifaces);
+
+ res->len = iface_count(ifaces);
res->val = malloc_array_p(HostAddress, res->len);
if (res->val == NULL) {
+ talloc_free(ifaces);
return ENOMEM;
}
for (i=0;i<res->len;i++) {
- const char *ip = iface_n_ip(global_loadparm, i);
+ const char *ip = iface_n_ip(ifaces, i);
res->val[i].addr_type = AF_INET;
res->val[i].address.length = 4;
res->val[i].address.data = malloc(4);
if (res->val[i].address.data == NULL) {
+ talloc_free(ifaces);
return ENOMEM;
}
((struct in_addr *)res->val[i].address.data)->s_addr = inet_addr(ip);
}
+ talloc_free(ifaces);
+
return 0;
}