This commit has been accessed 5 times via Git panel.
commit f574303fcf693be10afc13bebc5999a88c45e9cc
tree 8eed43a55d79b875c2e3486835865b8bfa77cf2e
parent 364d89de7aa08d3f5b0da251711f9453c15de721
author Engels Antonio <engels@kalasag.org> 1782533299 +0800
committer Engels Antonio <engels@kalasag.org> 1782533299 +0800
Fix signal handler safety in Exit()
- Remove non-async-signal-safe Log() calls from signal handler
- Replace exit() with _exit() to skip atexit/stdio flush
- Remove SIGKILL handler (cannot be caught, always a no-op)
- Change SIGURG handler to SIG_IGN (not a shutdown signal)
diff --git a/kalasag_io.c b/kalasag_io.c
index e274c93..36e0c39 100644
--- a/kalasag_io.c
+++ b/kalasag_io.c
@@ -27,9 +27,7 @@ void Exit(int status)
{
if (gblPidFile[0])
unlink(gblPidFile);
- Log("securityalert: Kalasag is shutting down\n");
- Log("adminalert: Kalasag is shutting down\n");
- exit(status);
+ _exit(status);
}
@@ -54,8 +52,7 @@ int DaemonSeed(char *detectionType)
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, Exit);
signal(SIGABRT, Exit);
- signal(SIGURG, Exit);
- signal(SIGKILL, Exit);
+ signal(SIGURG, SIG_IGN);
if ((childpid = fork()) < 0)
return (ERROR);
tree 8eed43a55d79b875c2e3486835865b8bfa77cf2e
parent 364d89de7aa08d3f5b0da251711f9453c15de721
author Engels Antonio <engels@kalasag.org> 1782533299 +0800
committer Engels Antonio <engels@kalasag.org> 1782533299 +0800
Fix signal handler safety in Exit()
- Remove non-async-signal-safe Log() calls from signal handler
- Replace exit() with _exit() to skip atexit/stdio flush
- Remove SIGKILL handler (cannot be caught, always a no-op)
- Change SIGURG handler to SIG_IGN (not a shutdown signal)
diff --git a/kalasag_io.c b/kalasag_io.c
index e274c93..36e0c39 100644
--- a/kalasag_io.c
+++ b/kalasag_io.c
@@ -27,9 +27,7 @@ void Exit(int status)
{
if (gblPidFile[0])
unlink(gblPidFile);
- Log("securityalert: Kalasag is shutting down\n");
- Log("adminalert: Kalasag is shutting down\n");
- exit(status);
+ _exit(status);
}
@@ -54,8 +52,7 @@ int DaemonSeed(char *detectionType)
signal(SIGPIPE, SIG_IGN);
signal(SIGTERM, Exit);
signal(SIGABRT, Exit);
- signal(SIGURG, Exit);
- signal(SIGKILL, Exit);
+ signal(SIGURG, SIG_IGN);
if ((childpid = fork()) < 0)
return (ERROR);