diff options
Diffstat (limited to 'results/scraper/fex/2410')
| -rw-r--r-- | results/scraper/fex/2410 | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/results/scraper/fex/2410 b/results/scraper/fex/2410 new file mode 100644 index 000000000..858336129 --- /dev/null +++ b/results/scraper/fex/2410 @@ -0,0 +1,62 @@ + x32 signal stack problem +``` c +#include <stdio.h> //printf() +#include <unistd.h> //pause() +#include <signal.h> //signal() +#include <string.h> //memset() +#include <sys/time.h> //struct itimerval, setitimer() + +static int count = 0; + +static volatile int caught_signal; + +void clear_signal(void) +{ + if (caught_signal) { + printf("caugt_signal !=0\n"); + } + while (!caught_signal); + + + if (caught_signal != SIGALRM) { + printf("Received incorrect signal: %d",caught_signal); + } + caught_signal = 0; +} + + +void printMes(int signo) +{ + caught_signal = signo; +} + +int main() +{ + int res = 0; + struct itimerval tick; + + signal(SIGALRM, printMes); + memset(&tick, 0, sizeof(tick)); + + //Timeout to run first time + tick.it_value.tv_sec = 1; + tick.it_value.tv_usec = 0; + + //After first, the Interval time for clock + tick.it_interval.tv_sec = 0; + tick.it_interval.tv_usec = 100; + + if(setitimer(ITIMER_REAL, &tick, NULL) < 0) + printf("Set timer failed!\n"); + + while(1) + { + clear_signal(); + } + return 0; +} + + +``` + +i compile this code in a ubunt16.04 x32 container. and receive segfault. |