diff options
author | Günther Deschner <gd@samba.org> | 2006-03-16 11:32:01 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:15:33 -0500 |
commit | ef115ff3148b1590ca6128ec31975ef20e334f66 (patch) | |
tree | dff69211638fc5b046ab64ed89870848298660f9 /source3/nsswitch | |
parent | 5856fd510c577d61313474fc9788d72cce9a3c8e (diff) | |
download | samba-ef115ff3148b1590ca6128ec31975ef20e334f66.tar.gz samba-ef115ff3148b1590ca6128ec31975ef20e334f66.tar.bz2 samba-ef115ff3148b1590ca6128ec31975ef20e334f66.zip |
r14468: Better fix to avoid winbind panic when we have an inproper configuration
and want to just shutdown and exit.
Guenther
(This used to be commit 0aa6328ed6ba6d0d24169ffdff0099405c9bfb00)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r-- | source3/nsswitch/winbindd.c | 5 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_util.c | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c index 80cb6990a5..59437f05c2 100644 --- a/source3/nsswitch/winbindd.c +++ b/source3/nsswitch/winbindd.c @@ -1071,7 +1071,10 @@ int main(int argc, char **argv) netsamlogon_cache_init(); /* Non-critical */ - init_domain_list(); + if (!init_domain_list(True)) { + DEBUG(0,("unable to initalize domain list\n")); + exit(1); + } init_idmap_child(); diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c index 7ad3318fe8..20f25a3954 100644 --- a/source3/nsswitch/winbindd_util.c +++ b/source3/nsswitch/winbindd_util.c @@ -62,7 +62,7 @@ struct winbindd_domain *domain_list(void) /* Initialise list */ if (!_domain_list) - init_domain_list(); + init_domain_list(False); return _domain_list; } @@ -498,7 +498,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(BOOL initial_start) { extern struct winbindd_methods cache_methods; extern struct winbindd_methods passdb_methods; @@ -518,7 +518,11 @@ 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"); + if (initial_start) { + return False; + } else { + smb_panic("Could not fetch our SID - did we join?\n"); + } } domain = add_trusted_domain( lp_workgroup(), lp_realm(), @@ -540,6 +544,8 @@ void init_domain_list(void) get_global_sam_sid()); setup_domain_child(domain, &domain->child, NULL); } + + return True; } /** |