The libsafe library protects against buffer overflow and format string attacks. It works by putting a wrapper around dangerous functions that contain any buffer overflows within the current stack frame, so that the return address can not be changed. Libsafe works with any existing pre-compiled executable and can be used transparently, even on a system-wide basis.
32e0bfc021b6feabc5f2275a46f209b6894ede22bd9fd9476f178c36b7f85761