gcc (GCC) 4.6.0
c89
I have a signal handler declared like this:
/* Setup signal handler */
struct sigaction new_action;
new_action.sa_handler = g_signal_handler;
new_action.sa_flags = SA_ONSTACK;
if(sigaction(SIGINT, &new_action, NULL) == -1) {
fprintf(stderr, "Failed to setup signal handlers.");
return -1;
}
When I was running my code through valgrind i.e. valgrind --leak-check=full it picked up the following error:
==5206== Syscall param rt_sigaction(act->sa_mask) points to uninitialised byte(s)
==5206== at 0x347A435455: __libc_sigaction (in /lib64/libc-2.14.so)
So aftering looking at the man pages I decided to set like this, just to test with:
new_action.sa_mask = SA_NODEFER;
However, that just give me the following error:
error: incompatible types when assigning to type ‘__sigset_t’ from type ‘int’
Many thanks for any suggestions,
Try this: