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