Code Complete 2を読んでいて、エラー処理で次のステートメントに出くわしました。
エラー処理ルーチン/オブジェクトを呼び出します。もう 1 つの方法は、エラー処理をグローバル エラー処理ルーチンまたはエラー処理オブジェクトに集中化することです。このアプローチの利点は、エラー処理の責任を一元化できるため、デバッグが容易になることです。トレードオフは、プログラム全体がこの中心的な機能を認識し、それに結合されることです。システムのコードを別のシステムで再利用したい場合は、再利用するコードと一緒にエラー処理機構をドラッグする必要があります。
そして後でそれは言います:
このアプローチには、セキュリティ上の重要な意味があります。コードでバッファー オーバーランが発生した場合、攻撃者がハンドラー ルーチンまたはオブジェクトのアドレスを侵害した可能性があります。したがって、アプリケーションの実行中にバッファ オーバーランが発生すると、この方法を使用しても安全ではなくなります。
しかし、上記の文はよく理解できませんでした。バッファ オーバーランはどのようにアドレス侵害を引き起こす可能性がありますか?