diff options
| author | Jeremy Allison <jra@samba.org> | 2009-01-15 15:52:41 -0800 | 
|---|---|---|
| committer | Jeremy Allison <jra@samba.org> | 2009-01-15 15:52:41 -0800 | 
| commit | 6fd867f036b0dfbc4d6639c737467132b41dd2e5 (patch) | |
| tree | 4dd1fb5c6fdb39feca8454514caea4ec92cfc0c1 /source3/lib | |
| parent | 9361c73c2f4ce9a2f9a7e5515a9272ddd14eb2ed (diff) | |
| download | samba-6fd867f036b0dfbc4d6639c737467132b41dd2e5.tar.gz samba-6fd867f036b0dfbc4d6639c737467132b41dd2e5.tar.bz2 samba-6fd867f036b0dfbc4d6639c737467132b41dd2e5.zip  | |
Allow reinit_after_fork to be called safely from within swat and other binaries that don't have
an event context or a msg context. Fixes crash bug in swat.
Jeremy.
Diffstat (limited to 'source3/lib')
| -rw-r--r-- | source3/lib/util.c | 24 | 
1 files changed, 14 insertions, 10 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c index 1e6ee56230..70eabbfa99 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -966,18 +966,22 @@ bool reinit_after_fork(struct messaging_context *msg_ctx,  		return false;  	} -	/* -	 * For clustering, we need to re-init our ctdbd connection after the -	 * fork -	 */ -	status = messaging_reinit(msg_ctx); -	if (!NT_STATUS_IS_OK(status)) { -		DEBUG(0,("messaging_reinit() failed: %s\n", -			 nt_errstr(status))); -		return false; +	if (msg_ctx) { +		/* +		 * For clustering, we need to re-init our ctdbd connection after the +		 * fork +		 */ +		status = messaging_reinit(msg_ctx); +		if (!NT_STATUS_IS_OK(status)) { +			DEBUG(0,("messaging_reinit() failed: %s\n", +				 nt_errstr(status))); +			return false; +		}  	} -	event_context_reinit(ev_ctx); +	if (ev_ctx) { +		event_context_reinit(ev_ctx); +	}  	return true;  }  | 
