Is it possible, and under what conditions, will the Linux kernel end execution of a program due to a memory write violation, but not due to a memory access violation over the same memory location.
eg
//x is a pointer to a vector of structs
if( (*x)[i].member )
break; //doesn't crash
if( (*x)[i].member )
(*x)[i].member = 1; //crashes, even though member is not used
//elsewhere in the program
That happens if the page where your element is stored is write-protected.
Reads are allowed, but writes not (and the process gets killed if it tries to).
This happens with C and C++ if you try to modify a string that was stored in a read-only section.