Я читаю Code Complete 2 и наткнулся на этот оператор в разделе "Обработка ошибок":
Вызов подпрограммы/объекта обработки ошибок. Другой подход состоит в том, чтобы централизовать обработку ошибок в глобальной процедуре обработки ошибок или объекте обработки ошибок. Преимущество этого подхода в том, что ответственность за обработку ошибок может быть централизована, что упрощает отладку. Компромисс заключается в том, что вся программа будет знать об этой центральной возможности и будет связана с ней. Если вы когда-нибудь захотите повторно использовать какой-либо код из системы в другой системе, вам придется перетащить механизм обработки ошибок вместе с кодом, который вы повторно используете.
И позже он говорит:
Этот подход имеет важное значение для безопасности. Если ваш код столкнулся с переполнением буфера, возможно, злоумышленник скомпрометировал адрес подпрограммы или объекта обработчика. Таким образом, если во время работы приложения произошло переполнение буфера, использовать этот подход уже небезопасно.
Но я не мог понять утверждение выше. Как переполнение буфера может привести к компрометации адреса?