// use-after-free #include #include #include int main() { int *ptr = (int *)malloc(sizeof(*ptr)); assert(ptr != 0); *ptr = 42; printf("%p %d\n", ptr, *ptr); free(ptr); printf("%p %d\n", ptr, *ptr); // use after free // the following usully causes a SEGV in the interpreter because the store corrupts GC memory *ptr = 43; // use after free printf("%p %d\n", ptr, *ptr); // use after free return 0; }