mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
Changes from APPLIANCE_HEAD:
source/smbd/server.c source/nmbd/nmbd.c - Fixed a very subtle bug with signals. Seems that POSIX requires that the signal mask be inhereted. So, if you happen to kick off smbd/nmbd from code that has the mask set on SIGUSR1, you lose messages.
This commit is contained in:
parent
09902d2d4a
commit
b4c98196fc
@ -686,6 +686,12 @@ static void usage(char *pname)
|
||||
|
||||
fault_setup((void (*)(void *))fault_continue );
|
||||
|
||||
/* POSIX demands that signals are inherited. If the invoking process has
|
||||
* these signals masked, we will have problems, as we won't recieve them. */
|
||||
BlockSignals(False, SIGHUP);
|
||||
BlockSignals(False, SIGUSR1);
|
||||
BlockSignals(False, SIGTERM);
|
||||
|
||||
CatchSignal( SIGHUP, SIGNAL_CAST sig_hup );
|
||||
CatchSignal( SIGTERM, SIGNAL_CAST sig_term );
|
||||
|
||||
|
@ -651,6 +651,11 @@ static void usage(char *pname)
|
||||
BlockSignals(True,SIGUSR2);
|
||||
#endif
|
||||
|
||||
/* POSIX demands that signals are inherited. If the invoking process has
|
||||
* these signals masked, we will have problems, as we won't recieve them. */
|
||||
BlockSignals(False, SIGHUP);
|
||||
BlockSignals(False, SIGUSR1);
|
||||
|
||||
/* we want total control over the permissions on created files,
|
||||
so set our umask to 0 */
|
||||
umask(0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user