summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/libads/kerberos.c25
-rw-r--r--source3/nsswitch/winbindd_cm.c20
2 files changed, 25 insertions, 20 deletions
diff --git a/source3/libads/kerberos.c b/source3/libads/kerberos.c
index 95eed6fe27..d35b59f4cd 100644
--- a/source3/libads/kerberos.c
+++ b/source3/libads/kerberos.c
@@ -484,18 +484,21 @@ static char *get_kdc_ip_string(char *mem_ctx, const char *realm, const char *sit
/* Get the KDC's only in this site. */
- get_kdc_list(realm, sitename, &ip_srv_site, &count_site);
+ if (sitename) {
- for (i = 0; i < count_site; i++) {
- if (ip_equal(ip_srv_site[i].ip, primary_ip)) {
- continue;
- }
- /* Append to the string - inefficient but not done often. */
- kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
- kdc_str, inet_ntoa(ip_srv_site[i].ip));
- if (!kdc_str) {
- SAFE_FREE(ip_srv_site);
- return NULL;
+ get_kdc_list(realm, sitename, &ip_srv_site, &count_site);
+
+ for (i = 0; i < count_site; i++) {
+ if (ip_equal(ip_srv_site[i].ip, primary_ip)) {
+ continue;
+ }
+ /* Append to the string - inefficient but not done often. */
+ kdc_str = talloc_asprintf(mem_ctx, "%s\tkdc = %s\n",
+ kdc_str, inet_ntoa(ip_srv_site[i].ip));
+ if (!kdc_str) {
+ SAFE_FREE(ip_srv_site);
+ return NULL;
+ }
}
}
diff --git a/source3/nsswitch/winbindd_cm.c b/source3/nsswitch/winbindd_cm.c
index 70ab9b0582..c854efd9b2 100644
--- a/source3/nsswitch/winbindd_cm.c
+++ b/source3/nsswitch/winbindd_cm.c
@@ -1121,18 +1121,20 @@ static BOOL get_dcs(TALLOC_CTX *mem_ctx, const struct winbindd_domain *domain,
get_dc_name(domain->name, lp_realm(), dcname, &ip);
sitename = sitename_fetch();
+ if (sitename) {
- /* Do the site-specific AD dns lookup first. */
- get_sorted_dc_list(domain->alt_name, sitename, &ip_list, &iplist_size, True);
+ /* Do the site-specific AD dns lookup first. */
+ get_sorted_dc_list(domain->alt_name, sitename, &ip_list, &iplist_size, True);
- for ( i=0; i<iplist_size; i++ ) {
- add_one_dc_unique(mem_ctx, domain->name, inet_ntoa(ip_list[i].ip),
- ip_list[i].ip, dcs, num_dcs);
- }
+ for ( i=0; i<iplist_size; i++ ) {
+ add_one_dc_unique(mem_ctx, domain->name, inet_ntoa(ip_list[i].ip),
+ ip_list[i].ip, dcs, num_dcs);
+ }
- SAFE_FREE(ip_list);
- SAFE_FREE(sitename);
- iplist_size = 0;
+ SAFE_FREE(ip_list);
+ SAFE_FREE(sitename);
+ iplist_size = 0;
+ }
/* Now we add DCs from the main AD dns lookup. */
get_sorted_dc_list(domain->alt_name, NULL, &ip_list, &iplist_size, True);