•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?)