Reference1
Reference: Runtime Defenses agains Memory Corruption, or here
Three kinds of solutions:
Special table maps pointers to referent objects
Keep track of address range of each object
Examples:
Jones-Kelly2: pad each object by 1 byte; maintain a runtime tree of allocated objects; replace all out-of-bound addresses with illegal value; backwards-compatible pointer representation.
Ruwas-Lam3: catch out-of-bounds pointers at runtime.
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?