diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/nsswitch/winbindd.c | 7 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_util.c | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index 8314c65c64..f9ba80e533 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -1054,7 +1054,7 @@ int main(int argc, char **argv) /* Initialise messaging system */ if (!message_init()) { - DEBUG(0, ("unable to initialise messaging system\n")); + DEBUG(0, ("unable to initialize messaging system\n")); exit(1); } @@ -1071,7 +1071,10 @@ int main(int argc, char **argv) netsamlogon_cache_init(); /* Non-critical */ - init_domain_list(); + if (!init_domain_list()) { + DEBUG(0, ("unable to initialize domain list\n")); + exit(1); + } init_idmap_child(); diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index 349ca21652..0678376e8f 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -61,8 +61,9 @@ struct winbindd_domain *domain_list(void) { /* Initialise list */ - if (!_domain_list) - init_domain_list(); + if (!_domain_list && !init_domain_list()) { + return NULL; + } return _domain_list; } @@ -498,7 +499,7 @@ enum winbindd_result winbindd_dual_init_connection(struct winbindd_domain *domai } /* Look up global info for the winbind daemon */ -void init_domain_list(void) +BOOL init_domain_list(void) { extern struct winbindd_methods cache_methods; extern struct winbindd_methods passdb_methods; @@ -518,7 +519,8 @@ void init_domain_list(void) DOM_SID our_sid; if (!secrets_fetch_domain_sid(lp_workgroup(), &our_sid)) { - smb_panic("Could not fetch our SID - did we join?\n"); + DEBUG(0,("Could not fetch our SID - did we join?\n")); + return False; } domain = add_trusted_domain( lp_workgroup(), lp_realm(), @@ -540,6 +542,8 @@ void init_domain_list(void) get_global_sam_sid()); setup_domain_child(domain, &domain->child, NULL); } + + return True; } /** |