-
Notifications
You must be signed in to change notification settings - Fork 9
/
auto_test.c
62 lines (44 loc) · 857 Bytes
/
auto_test.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
void print_message_function (void *ptr);
int
main (void)
{
pthread_t thread1;
pthread_t thread2;
printf("Starting first run\n");
pthread_create (&thread1, NULL, (void *) &print_message_function, NULL);
pthread_create (&thread2, NULL, (void *) &print_message_function, NULL);
pthread_join (thread2, NULL);
/* Not reached */
printf("This should never happen!\n");
pthread_join (thread1, NULL);
return 0;
}
void
croak (void)
{
int *ip = (int *) 17;
char * p = sbrk(0);
memset(p-1024, 42, 1024);
write(3000, "xxx", 3);
*ip = 7;
}
void
die (void)
{
volatile int i= 12;
croak ();
i++;
return;
}
void
print_message_function(void *dummy)
{
printf ("Morituri te salutant!\n");
die ();
pthread_exit (0);
}