•Example: With hardware
support the program could set the bounds of every buffer and an
interrupt would be generated if an attempt was made to access or change memory
outside of those bounds
•Pros:
–Would prevent many buffer overflows if done properly
•Cons:
–Pointer arithmetic would still be unbounded as a pointer might be pointing to an array of 100
bytes, and array of 50 bytes, or to the 40th byte of an array of 50
bytes
–Programmers would still have to be educated about buffer overflows because they need to write
an interrupt handler to do what they want it to (halt, truncate the
buffer, ask the user for different input?)