32 #include <sys/socket.h> 40 #include <openvas/base/pidfile.h> 48 waitpid (pid, &status, WNOHANG);
59 if (getpgrp () != getpid ())
63 if (kill (0, sig) < 0)
72 if (kill (0, sig) < 0)
94 struct sigaction saNew, saOld;
97 sigfillset (&saNew.sa_mask);
98 sigdelset (&saNew.sa_mask, SIGALRM);
101 saNew.sa_handler = handler;
103 sigaction (signum, &saNew, &saOld);
104 return saOld.sa_handler;
113 waitpid (pid, &status, WNOHANG);
120 int fd, ret = 0, left;
121 char *message =
"SIGSEGV occured !\n";
127 left = strlen (message);
130 ret = write (fd, message, left);
133 if (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)
140 ret = backtrace (array, 10);
141 backtrace_symbols_fd (array, ret, fd);
147 signal (SIGSEGV, _exit);
153 raise (given_signal);
void(*)(int) openvas_signal(int signum, void(*handler)(int))
int log_get_fd()
Get the open log file descriptor.
void sighand_chld(pid_t pid)
void sighand_segv(int given_signal)
void make_em_die(int sig)