Earlier quoted context omitted.
> that's a weird execution for any useful definition of "weird". Weird execution is a term of art in the security biz. This is not that. Weird execution happens when the attacker can control all of memory, not just objects the victim program rightly loaded from the heap. > Your central claim is that you can take any old C program, compile it with Fil-C, and get a memory-safe C program. Yes. Your program is memory saf…
Sorry to intrude on the discussion, but I have a hard time grasping how to produce the behavior mentioned by quotemstr. From what I understand the following program would do it: int arr1[] = {1, 2, 3, 4, 5}; int arr2[] = {10, 20, 30, 40, 50}; int *p1 = &arr1[1]; int *p2 = &arr2[2]; int *p = choose_between(p1,p2); //then sometime later, a function gets passed p // and this snippet runs if (p == p2) { //p gets torn by…
You can’t access out of bounds of whatever capability you loaded.