xref: /aosp_15_r20/external/AFLplusplus/test/test-unsigaction.c (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1*08b48e0bSAndroid Build Coastguard Worker #include <signal.h>          /* sigemptyset(), sigaction(), kill(), SIGUSR1 */
2*08b48e0bSAndroid Build Coastguard Worker #include <stdlib.h>                                               /* exit() */
3*08b48e0bSAndroid Build Coastguard Worker #include <unistd.h>                                             /* getpid() */
4*08b48e0bSAndroid Build Coastguard Worker #include <errno.h>                                                 /* errno */
5*08b48e0bSAndroid Build Coastguard Worker #include <stdio.h>                                             /* fprintf() */
6*08b48e0bSAndroid Build Coastguard Worker 
mysig_handler(int sig)7*08b48e0bSAndroid Build Coastguard Worker static void mysig_handler(int sig) {
8*08b48e0bSAndroid Build Coastguard Worker 
9*08b48e0bSAndroid Build Coastguard Worker   exit(2);
10*08b48e0bSAndroid Build Coastguard Worker 
11*08b48e0bSAndroid Build Coastguard Worker }
12*08b48e0bSAndroid Build Coastguard Worker 
main()13*08b48e0bSAndroid Build Coastguard Worker int main() {
14*08b48e0bSAndroid Build Coastguard Worker 
15*08b48e0bSAndroid Build Coastguard Worker   /* setup sig handler */
16*08b48e0bSAndroid Build Coastguard Worker   struct sigaction sa;
17*08b48e0bSAndroid Build Coastguard Worker   sa.sa_handler = mysig_handler;
18*08b48e0bSAndroid Build Coastguard Worker   sigemptyset(&sa.sa_mask);
19*08b48e0bSAndroid Build Coastguard Worker   sa.sa_flags = 0;
20*08b48e0bSAndroid Build Coastguard Worker   if (sigaction(SIGCHLD, &sa, NULL)) {
21*08b48e0bSAndroid Build Coastguard Worker 
22*08b48e0bSAndroid Build Coastguard Worker     fprintf(stderr, "could not set signal handler %d, aborted\n", errno);
23*08b48e0bSAndroid Build Coastguard Worker     exit(1);
24*08b48e0bSAndroid Build Coastguard Worker 
25*08b48e0bSAndroid Build Coastguard Worker   }
26*08b48e0bSAndroid Build Coastguard Worker 
27*08b48e0bSAndroid Build Coastguard Worker   kill(getpid(), SIGCHLD);
28*08b48e0bSAndroid Build Coastguard Worker   return 0;
29*08b48e0bSAndroid Build Coastguard Worker 
30*08b48e0bSAndroid Build Coastguard Worker }
31*08b48e0bSAndroid Build Coastguard Worker 
32