diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
| commit | f2ec263023649e596c5076df32c2d328bc9393d2 (patch) | |
| tree | 5dd86caab46e552bd2e62bf9c4fb1a7504a44db4 /results/scraper/fex/2410 | |
| parent | 63d2e9d409831aa8582787234cae4741847504b7 (diff) | |
| download | qemu-analysis-main.tar.gz qemu-analysis-main.zip | |
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. |