1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <time.h> 4 #include <string.h> 5 #include <unistd.h> 6 7 #define EXPORT __attribute__((visibility("default"))) 8 #define NOINLINE __attribute__ ((noinline)) 9 crash()10EXPORT NOINLINE void crash() 11 { 12 char src[128]; 13 char dst[2]; 14 memcpy(src, dst, 8192); 15 } 16 func1()17EXPORT NOINLINE void func1() 18 { 19 printf("func1\n"); 20 crash(); 21 } 22 func2()23EXPORT NOINLINE void func2() 24 { 25 printf("func2\n"); 26 crash(); 27 } 28 driver()29EXPORT NOINLINE void driver() 30 { 31 srand(time(0)); 32 sleep(1); 33 if (rand() % 2 == 1) func1(); 34 else func2(); 35 } 36 main(int argc,char ** argv)37int main(int argc, char ** argv) 38 { 39 driver(); 40 return 0; 41 } 42 43