From 961a430ffb3afde0edc05d18ddab59a50e1e988d Mon Sep 17 00:00:00 2001 From: deuce <> Date: Thu, 17 Nov 2005 06:13:13 +0000 Subject: [PATCH] If _THREAD_SUID_BROKEN then use sigprocmask() and block the hell out of everything. *sigh* perhaps we need _PTHREADS_ARENT or something instead. --- src/sbbs3/sbbscon.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sbbs3/sbbscon.c b/src/sbbs3/sbbscon.c index 9e7018cee3..d0fa9a5018 100644 --- a/src/sbbs3/sbbscon.c +++ b/src/sbbs3/sbbscon.c @@ -1582,6 +1582,10 @@ int main(int argc, char** argv) SetConsoleCtrlHandler(ControlHandler, TRUE /* Add */); #elif defined(__unix__) /* Set up blocked signals */ +#ifdef _THREAD_SUID_BROKEN + sigfillset(&sigs); + sigprocmask(SIG_BLOCK,&sigs,NULL); +#else sigemptyset(&sigs); sigaddset(&sigs,SIGINT); sigaddset(&sigs,SIGQUIT); @@ -1593,6 +1597,7 @@ int main(int argc, char** argv) pthread_sigmask(SIG_BLOCK,&sigs,NULL); signal(SIGPIPE, SIG_IGN); /* Ignore "Broken Pipe" signal (Also used for broken socket etc.) */ signal(SIGALRM, SIG_IGN); /* Ignore "Alarm" signal */ +#endif _beginthread((void(*)(void*))handle_sigs,0,NULL); if(new_uid_name[0]!=0) { /* check the user arg, if we have uid 0 */ /* Can't recycle servers (re-bind ports) as non-root user */ -- GitLab